tree转list

先准备一个数组

        我这里tree状数组的子属性是放在children属性里面的

 let arr = [
                    {
                        id: 1,
                        parentId: 0,
                        name: 'Saber',
                        children:[
                            {
                                id: 4,
                                parentId: 1,
                                name: '阿尔托莉雅'
                            },
                            {
                                id: 5,
                                parentId: 1,
                                name: '尼禄'
                            }
                        ]
                    },
                    {
                        id: 2,
                        parentId: 0,
                        name: 'Lancer',
                        children:[
                            {
                                id: 6,
                                parentId: 2,
                                name: '库丘林'
                            }
                        ]
                    },
                    {
                        id: 3,
                        parentId: 0,
                        name: 'Archer',
                        children:[
                            {
                                id: 7,
                                parentId: 3,
                                name: '红A',
                            },
                            {
                                id: 8,
                                parentId: 3,
                                name: '金闪闪'
                            }
                        ]
                    }  
                ]

 转换的方式

 // 传入两数组
 // arr是tree数据
 // resArr这个是用来接受转化后的list数据
    function treeToList(arr, resArr) {
         // 遍历循环arr数组中的数据
         arr.forEach(v => {
               // 写入空的数值
               resArr.push(v);
               // 判断是否有children属性
               // 有children属性的话再次调用写入
               if (v.children) {
               treeToList(v.children, resArr)
           }
       });
    }
  let list = []
  treeToList(arr , list)
  console.log(list);

 打印出来的结果

  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值