List数组根据pid转化为层级关系的多维数组递归

List数组根据pid转化为层级关系的多维数组递归


1.一维转多维层级关系方法

 function tranListToTreeDataroute(list, rootValue) {
  const arr = [];
  list.forEach(item => {
    if (item.pid === rootValue) {
      let children = tranListToTreeDataroute(list, item.id); // 找到之后 就要去找 item 下面有没有子节点
      //sort排序
      //children = children.sort((a, b) => {
      //  return +a.sort - +b.sort;
     // });
      if (children.length) {
        item.children = children; // 如果children的长度大于0 说明找到了子节点
      }
      arr.push(item); // 将内容加入到数组中
    }
  });
  return arr; // 返回新数组
}

2.使用方法

//例如 数组
listArr = [
	{id:"1224454",name:'测试1',pid:'0'},
	{id:"19994",name:'子测试1',pid:'1224454'},
	{id:"2222555",name:'子测试2',pid:'1224454'},
	{id:"9999",name:'三级子测试333',pid:'2222555'},
	{id:"666",name:'测试1',pid:'0'},
	{id:"888",name:'测试1',pid:'0'},
	{id:"9999",name:'测试1',pid:'0'}]

//rootValue 为一级的pid
const dataArr =  tranListToTreeDataroute(listArr , '0');

//转换为dataArr
	[{
		id:"1224454",
		name:'测试1',
		pid:'0',
		children:[
			{
			id:"19994",
			name:'子测试1',
			pid:'1224454'
			},	
			{
			id:"2222555",
			name:'子测试2',
			pid:'1224454'
			children:[
				{
					id:"9999",
					name:'三级子测试333',
					pid:'2222555'
				}
				]
			},
		]
	},	{id:"666",name:'测试1',pid:'0'},
	{id:"888",name:'测试1',pid:'0'},
	{id:"9999",name:'测试1',pid:'0'}]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值