技术实践
Js 树形数据递归查询该节点的所有父级节点
Js 树形数据递归查询该节点的所有父级节点、查询该节点的所有子节点

根据ID获取该节点的所有父节点的对象
js
function getParentId(list,id) {
for (let i in list) {
if(list[i].id==id){
return [list[i]]
}
if(list[i].children){
let node=getParentId(list[i].children,id);
if(node!==undefined){
return node.concat(list[i])
}
}
}
}
getParentId(data2,10)//打印出来就是想要的数据
根据ID获取该节点的对象
js
function getId(list,id) {
for (let i in list) {
if(list[i].id==id){
return [list[i]]
}
if(list[i].children){
let node=getParentId(list[i].children,id);
if(node!==undefined){
return node;
}
}
}
}
getId(data2,4)//打印出来就是想要的数据
根据ID获取所有子节点的对象,首先把该节点的对象找出来,上面getId()这个方法
js
function getNodeId(list,newNodeId=[]) {
for (let i in list) {
newNodeId.push(list[i])
if(list[i].children){
getNodeId(list[i].children,newNodeId);
}
}
return newNodeId;
}
//查找id=4的所有子级节点
let objId=getId(data2,4);
let childId=getNodeId(objId);//打印出来就是想要的数据