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; }
使用声明:
1. 本站所有素材(未指定商用),仅限学习交流。
2. 会员在本站下载的VIP素材后,只拥有使用权,著作权归原作者及码云笔记网所有。
3. 原创商用和VIP素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 本平台织梦模板仅展示和个人非盈利用途,织梦系统商业用途请预先授权。
码云笔记 » js实现树形结构和数组相互转换方法
1. 本站所有素材(未指定商用),仅限学习交流。
2. 会员在本站下载的VIP素材后,只拥有使用权,著作权归原作者及码云笔记网所有。
3. 原创商用和VIP素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 本平台织梦模板仅展示和个人非盈利用途,织梦系统商业用途请预先授权。
码云笔记 » js实现树形结构和数组相互转换方法