找到一种新的树形结构算法

<script>
   let allData = [
       {name: "文件夹1", pid: 0, id: 1},
       {name:"文件1", pid: 1, id: 1000},
       {name:"文件夹1-1", pid:1, id: 2},
       {name:"文件2", pid: 2, id: 1001},
   ]
   let treeMapList = allData.reduce((memo, current) => {
       memo[current["id"]] = current
       return memo
   },{})
   
   let list = allData.reduce((arr, current) => {
       let parentId = current.pid;
       let parent = treeMapList[parentId];
       if(parent) {
           parent.children?parent.children.push(current):parent["children"] = [current]
       }else{
           if(parentId == 0) {
               arr.push(current)
           }
       }
       return arr
   }, [])
   console.log(allData, 'allData')
   console.log(list, "list")
</script>

不太清楚为什么改变parent会影响到allData

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值