栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用递归的方法实现数组转树

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用递归的方法实现数组转树

const arr = [
  { 'id': '29', 'pid': '',     'name': '总裁办' },
  { 'id': '2c', 'pid': '',     'name': '财务部' },
  { 'id': '2d', 'pid': '2c', 'name': '财务核算部'},
  { 'id': '2f', 'pid': '2c', 'name': '薪资管理部'},
  { 'id': 'd2', 'pid': '',     'name': '技术部'},
  { 'id': 'd3', 'pid': 'd2', 'name': 'Java研发部'}
]

创建函数并且在arr找pid为第二次参数的元素,组成一个数组

function findChildren(arr,pid=''){
//在list中根据pid来找元素
let treeArr = []
//筛查出来pid=''的 也就是第一层
treeArr = arr.filter(it => it.pid ===pid)
//在通过循环加递归的方法将第二层和第三层放入到children中
treeArr.forEach(item => {
   item.children = findChildren(arr,item.id)
})
    return treeArr
}

结果

 const treeArr = [
   { 'id': '29', 'pid': '',     'name': '总裁办',children: [] },
   { 'id': '2c', 'pid': '',     'name': '财务部', children:[
     { 'id': '2d', 'pid': '2c', 'name': '财务核算部',children: []},
     { 'id': '2f', 'pid': '2c', 'name': '薪资管理部',children: []},
   ] },
   { 'id': 'd2', 'pid': '',     'name': '技术部', children: [
     { 'id': 'd3', 'pid': 'd2', 'name': 'Java研发部',children: []}
   ]},
   ]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号