根据某个子节点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))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现