JSON数据结构:
[
{
id: 1,
name: 'Node1',
children: [
{
id: 3,
name: 'Node1_1',
children: [
{
id: 8,
name: 'Node1_1_1'
}, {
id: 9,
name: 'Node1_1_2'
}, {
id: 10,
name: 'Node1_1_3'
}]
},
{
id: 4,
name: 'Node1_2'
},
{
id: 5,
name: 'Node1_3'
}]
},
{
id: 2,
name: 'Node2',
children: [
{
id: 6,
name: 'Node2_1'
}, {
id: 7,
name: 'Node2_2'
}]
}
]
实现查找代码:
function findAllParent(node, tree, parentNodes=[], index = 0){
if(!node || node.parentId === 0){
return
}
findParent(node, parentNodes, tree)
let parntNode = parentNodes[index]
findAllParent(parntNode, tree, parentNodes, ++index)
return parentNodes
}
function findParent(node, parentNodes, tree){
for(let i=0; i< tree.length; i++){
let item = tree[i]
if(item.id === node.parentId){
parentNodes.push(item)
return
}
if(item.children && item.children.length >0){
findParent(node,parentNodes, item.children)
}
}
}
export default findAllParent