const data = [{
id: 1,
pid: 0,
name: 'body'
}, {
id: 2,
pid: 1,
name: 'title'
}, {
id: 3,
pid: 2,
name: 'div'
}]
转换为: [{
id: 1,
pid: 0,
name: 'body',
children: [{
id: 2,
pid: 1,
name: 'title',
children: [{
id: 3,
pid: 1,
name: 'div'
}]
}]
}]
const treeData= formatDataTree(data)
function formatDataTree(data){
let parents=data.filters(p=>{
p.pid===0
})
children=data.filters(c=>{c.pid!==0})
dataToTree(parents,children)
return parents
function dataToTree(parents,children){
parents.map(p=>{
children(c=>{
if(c.pid===p.id){
let _children=JSON.parse(JSON.stringify(children))
_children.splice(i,1);
dataToTree([c],_children)
if(p.children){
p.children.push(c)
}else{
p.children=[c]
}
}
})
})
}
}