2022-09-01 不利用递归,不利用while,对数据进
2022-09-01 本文已影响0人
Apbenz
大道至简~~~~~~!
代码就是需要优雅的同时,也要让人看的明白。
```javascript
let arrs=[
{id:1,pid:0,child:[]},
{id:2,pid:0,child:[]},
{id:3,pid:1,child:[]},
{id:4,pid:0,child:[]},
{id:5,pid:1,child:[]},
{id:6,pid:3,child:[]},
{id:7,pid:3,child:[]},
{id:8,pid:4,child:[]},
{id:9,pid:4,child:[]},
{id:10,pid:5,child:[]},
{id:11,pid:10,child:[]},
{id:12,pid:11,child:[]},
],sortarrs=[],tree=[]
arrs.sort((a,b)=>{return b.pid-a.pid})
sortarrs=JSON.parse(JSON.stringify(arrs))
for(let i=0;i<sortarrs.length;i++){
if(sortarrs[i].pid===0) break;
for(let j=0;j<arrs.length;j++){
if(arrs[i].pid==sortarrs[j].id){
sortarrs[j].child.push(sortarrs[i])
}
}
}
tree=sortarrs.filter(ele=>ele.pid===0)
```