var list=[
{'name':'文件1-1-1-1-1','pid':1007 ,'id':1008},
{'name':'文件1-1-1-1','pid':1005 ,'id':1007},
{'name':'文件1-1-1','pid':4 ,'id':1005},
{'name':'文件夹1','pid':0 ,'id':1},
{'name':'文件夹2','pid':0 ,'id':2},
{'name':'文件夹3','pid':0 ,'id':3},
{'name':'文件夹1-1','pid':1 ,'id':4},
{'name':'文件夹2-1','pid':2 ,'id':5},
{'name':'文件1','pid':1 ,'id':1001},
{'name':'文件2-1-1','pid':5 ,'id':1006},
{'name':'文件2-1','pid':2 ,'id':1003},
{'name':'文件2','pid':1 ,'id':1002},
{'name':'文件2-2','pid':2 ,'id':1004},
];
function mapTree(_arr_,_pid='pid',_id='id'){
let _arr=JSON.parse(JSON.stringify(_arr_))
let treeList=[];
let map={};
_arr.forEach(item=>{
item.children=[]; //第一循环先给每个添加 children
map[item[_id]] =item; //并把没一每一个添加到 map中
})
_arr.forEach(item=>{
if(item[_pid] === 0){
treeList.push(item)
}else{
map[item[_pid]].children.push(item)
}
})
return treeList
}
console.log(mapTree(list));
js数组转树形结构
最新推荐文章于 2024-09-13 23:50:28 发布