JS根据子节点递归获取所有父节点的集合
//传入参数:需要遍历的对象,需要匹配的id,获取所有的父级节点的Id
注意:data2必须是个对象,数组可以改写为{children: dataList, id: 0}
findIdList(data2, id, level) {
var arrRes = [];
let rev = (data, id, level) => {
if (!data) {
return;
}
for (var i = 0; i < data.children.length; i++) {
let item = data.children[i];
if (item.id == id) {
// 将匹配到的结果保存到数组
arrRes.unshift({level, activeId: item.id});
// 递归它的父级
rev(data2, data.id, 0);
break;
} else if (item.children && item.children.length > 0) {
//如果有子集,则把子集作为参数重新执行本方法
rev(item, id, level + 1);
}
}
};
rev(data2, id, level);
return arrRes;
},