我有一个对象树,但我无法找到具体对象id的所有父级。假设我需要为id = 5的对象的每个父级添加一些新字段。请问有人能帮忙通过递归循环遍历树吗?
var tree = {
id: 1,
children: [
{
id: 3,
parentId: 1,
children: [
{
id: 5,
parentId: 3,
children: []
}
]
}
]
}
console.log(searchTree (tree, 5));
function searchTree (tree, nodeId){
for (let i = 0; i < tree.length; i++){
if (tree[i].id == nodeId) {
// it's parent
console.log(tree[i].id);
tree[i].newField = true;
if (tree[i].parentId != null) {
searchTree(tree, tree[i].parentId);
}
}
}
}
...
)并将初始对象分配给变量等方式,使您的代码段可运行。 - T.J. Crowder