在用一些树形结构组件的时候,经常需要获取使用一些方法获取父元素,方法如下:
const datasource = [
{
value:'a',
children:[
{
value:'aa',
children:[
{
value:'aaa',
}
]
},
{
value:'ab'
}
]
},
{
value:'b',
children:[
{
value:'bb'
},
]
},
]
const targetData = {};
function loops(data=[],parent){
return data.map(({children,value})=>{
const node = {
value,
parent
}
targetData[value] = node;
node.children = loops(children,node);
return
})
}
function getNode(value){
let node= [];
let currentNode = targetData[value];
node.push(currentNode.value);
if(currentNode.parent){
node= [...getNode(currentNode.parent.value),...node];
}
return node
}
loops(datasource )
//获取父节点
const target = getNode('aaa')
console.log(target)
//打印 ['a','aa','aaa']

本文介绍了一种在树形结构中通过递归遍历获取节点及其父节点的方法,利用JavaScript实现了一个示例,展示了如何构建树形数据结构,并通过递归函数获取指定节点的所有父节点。
791





