js---树形结构和数组互转
下面是一些数据:
const arr =[ {id:2,name:'部门B',parentId:0}, {id:3,name:'部门C',parentId:1}, {id:1,name:'部门A',parentId:2}, {id:4,name:'部门D',parentId:1}, {id:5,name:'部门E',parentId:2}, {id:6,name:'部门F',parentId:3}, {id:7,name:'部门G',parentId:2}, {id:8,name:'部门H',parentId:4} ];
数组转树:
function toTree (data, pId) { const loop = parentId => { const res = [] data.forEach(item => { if (item.parentId === parentId) { item.children = loop(item.id) res.push(item) } }) return res } return loop(pId) }
树转数组:
function treeToArr(data) { const result = []; data.forEach(item => { const loop = data => { result.push({ id: data.id, name: data.name, parentId: data.parentId }); let child = data.children if(child){ for(let i = 0; i < child.length; i++){ loop(child[i]) } } } loop(item); }) return result; }
打完收工!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2019-07-31 ES6----拓展运算符 三个点【...】
2019-07-31 vue---引入外部样式