在菜单路径中寻找一个路径

一般应用于菜单路径解析出当前显示激活的菜单列表,需要通过一个路径链接,寻找到一个完整的路径

JS实现逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function findNodePath(root, target) {
// 如果根节点为空,则返回空路径
if (!root) {
return [];
}
// 如果根节点就是要查找的节点,则返回根节点 ,这里寻找的方式有很多,比如 root.path==target
if (root === target) {
return [root];
}
// 对于根节点的每个子节点,递归查找路径
for (let i = 0; i < root.children.length; i++) {
let path = findNodePath(root.children[i], target);
// 如果找到了路径,则将根节点加入路径中,并返回路径
if (path.length > 0) {
path.unshift(root);
return path;
}
}
// 如果搜索完所有子节点还没有找到路径,则返回空路径
return [];
}


在菜单路径中寻找一个路径
https://www.ggss.club/2022/12/06/find-path-tree/
作者
Nicol Li
发布于
2022年12月6日
许可协议