本次使用了双重循环的方式实现平铺数据转树形,虽然不高级,但是结构很清晰
<script>
const arr = [
{id:'001',pid:'000',name:'001'},
{id:'002',pid:'000',name:'002'},
{id:'003',pid:'001',name:'003'},
{id:'004',pid:'003',name:'004'},
{id:'005',pid:'003',name:'005'},
{id:'006',pid:'002',name:'006'},
]
function setMap(arr){
const map = {}
const list = []
arr.forEach((item,index)=>{
if(!item.children){
item.children= []
}
map[item.id]=item
})
arr.forEach((item,index)=>{
if(map[item.pid]){
map[item.pid].children.push(item)
}else{
list.push(item)
}
})
return list
}
const arr1 = setMap(arr)
console.log(arr1)
输出结果