var list=[
{"id":1,"pid":0,name:"0-1"},
{"id":2,"pid":1,name:"1-2"},
{"id":3,"pid":1,name:"1-3"},
{"id":4,"pid":2,name:"2-4"},
{"id":5,"pid":0,name:"0-5"},
{"id":6,"pid":0,name:"0-6"},
{"id":7,"pid":5,name:"5-7"}
]
let newList=list.sort((a,b)=>{ //pid倒叙
return b.pid-a.pid;
});
newList.forEach((av,ai,arr)=>{ //小蝌蚪找妈妈 ^_^ 递归记不住,自己写了个ps:xuelang
arr.forEach((bv,bi)=>{
if(bv.id==av.pid){
if(!bv.children){
bv.children=[];
}
bv.children.push(av)
}
})
})
let newArr=newList.filter((v,i) => { //去
return v.pid==0 //新数组为[3,4]
})
没有更简单,没有更快,但是很好理解,很好记。 父级pid排序-》蝌蚪找妈妈-》只保留一级