根据某个子节点id获取该节点的所有父节点id

复制代码
 1      treeData: [
 2         {
 3           id: 10,
 4           label: '张三',
 5           children: [
 6             {
 7               id: 11,
 8               label: '张三 1-1',
 9               children: [
10                 {
11                   id: 111,
12                   label: '张三 1-1-1'
13                 },
14                 {
15                   id: 112,
16                   label: '张三 1-1-2'
17                 }
18               ]
19             }
20           ]
21         },
22         {
23           id: 20,
24           label: '李四',
25           children: [
26             {
27               id: 21,
28               label: '李四 2-1'
29             },
30             {
31               id: 22,
32               label: '李四 2-2'
33             }
34           ]
35         },
36         {
37           id: 30,
38           label: '王二 3',
39           children: [
40             {
41               id: 31,
42               label: '王二 3-1'
43             },
44             {
45               id: 32,
46               label: '王二 3-2'
47             }
48           ]
49         }
50       ]
复制代码
复制代码
 1    getIdList(id, tree) {
 2       let arr = []
 3       for (let i = 0; i < tree.length; i++) {
 4         let item = tree[i]
 5         arr = []
 6         arr.push(item.id)
 7         if (id === item.id) {
 8           return arr
 9         } else {
10           if (item.children && item.children.length > 0) {
11             arr = arr.concat(this.getIdList(id, item.children))
12             if (arr.includes(id)) {
13               return arr
14             }
15           }
16         }
17       }
18     }
复制代码
1 console.log(this.getIdList(111, this.treeData))

 

posted @   借晚风叙旧  阅读(290)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
点击右上角即可分享
微信分享提示