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