【发布时间】:2018-03-15 10:31:56
【问题描述】:
我有 JavaScript 这样的树数据。
const tree = {
children:[
{id: 10, children: [{id: 34, children:[]}, {id: 35, children:[]}, {id: 36, children:[]}]},
{id: 10,
children: [
{id: 34, children:[
{id: 345, children:[]}
]},
{id: 35, children:[]},
{id: 36, children:[]}
]
},
{id: 11, children: [{id: 30, children:[]}, {id: 33, children:[]}, {id: 3109, children:[]}]}
],
id: 45
}
const getByID = (tree, id) => {
let result = null
if (id === tree.id) {
return tree
} else {
if(tree.children){
tree.children.forEach( node=> {
result = getByID(node, id)
})
}
return result
}
}
const find345 = getByID(tree, 345)
console.log(find345)
我试图通过它的 id 从这棵树中查找项目。我使用递归函数来迭代树及其子项,但它不会像我预期的那样找到项目。
它总是返回 null。预计返回{id: 345, children:[]}
【问题讨论】:
标签: javascript tree iterator