JS多叉树遍历及注意事项
在写JavaScript遍历多叉树的时候,遇到了一个问题,调试了好久,原因是在遍历子children的时候,在forEach回调函数里面return,但是那个是回调函数,并不会阻止forEach继续执行,所以返回不了查询的结果,经过修改后递归遍历查找多叉树的JS代码如下:
要遍历的数的数据结构为:
var data={
name:'test',
key:'key1'
children:[
{name:'test2',key:'key3',children:[]},
{name:'test3',key:'key4',children:[{name:'test5',key:'key5',children:[]}]}
]
}
//数据的大体结构为树形结构
然后对应的JS遍历树的代码为:
searchTree(data, key) {
if (!data) {
return null;
}
if (data.key === key) {
return data;
}
if (data.children) {
for (let child of data.children) {
var tmp = this.searchTree(child, key)
if (tmp != null) {
return tmp;
}
}
}
return null;
}