// 查找节点的所有父节点
function findParents(root, id) {
if (root.id === id) {
return [root];
}
if (!root.children) {
return [];
}
for (let i = 0; i < root.children.length; i++) {
const res = findParents(root.children[i], id);
if (res.length > 0) {
return [...res, root];
}
}
return [];
}
// 查找节点的所有子节点
function findChildren(root, id) {
if (root.id === id) {
return root.children || [];
}
if (!root.children) {
return [];
}
for (let i = 0; i < root.children.length; i++) {
const res = findChildren(root.children[i], id);
if (res.length > 0) {
return res;
}
}
return [];
}
// 构建示例树
let tree = {
id: 1,
name: 'A',
children: [
{
id: 2,
name: 'B',
children: [
{
id: 5,
name: 'E'
}
]
},
{
id: 3,
name: 'C',
children: [
{
id: 6,
name: 'F'
},
{
id: 7,
name: 'G'
}
]
},
{
id: 4,
name: 'D'
}
]
}
console.log(findParents(tree, 2)) ;
console.log(findChildren(tree, 3)) ;
通过树结构中的 一个id 向上找到全部的 父级 和 向下 找到所有子
于 2023-03-30 16:28:07 首次发布