data = [
{
value: 1,
name:"1",
children:[
{
value: 2,
name:"2",
}
]
},
{
value: 3,
name:"3",
children:[
{
value: 4,
name:"4",
}
]
}];
val = 4;
// 反向查找父节点
getNodePath(node, val, path) { // node: 所有数据,val: 后盾返回的 id, path: 要渲染的数组 id
for (let i = 0; i < node.length; i++) {const ele = node[i];
if (ele.value == val) {path.push(ele.value);
return path
} else if (ele.children && ele.children.length > 0) {if (ele.children.some(row => row.value == val)) {path.unshift(ele.value);
this.getNodePath(ele.children,val,path);
} else {this.getNodePath(ele.children,val,path);
}
}
}
return path;
},
// 应用
puth = this.getNodePath(data,val,[]);
// [3,4]