- 遍历树节点
readNodes(nodes = [], arr = []) {
for (let item of nodes) {
arr.push(item);
if (item.children && item.children.length)
this.readNodes(item.children, arr);
}
return arr;
}
- 根据id查询该节点和所有父级节点
getParentsById(list: ITag[], id: number) {
for (let i in list) {
if (list[i].id === id) {
//查询到就返回该数组对象
return [list[i]];
}
if (list[i].children) {
let node = this.getParentsById(list[i].children, id);
if (node !== undefined) {
//查询到把父节点连起来
return node.concat(list[i]);
}
}
}
}