let arr = [
{
id: 1,
name: '一级1',
pid: 0,
},
{
id: 2,
name: '一级2',
pid: 0,
},
{
id: 3,
name: '一级3',
pid: 0,
},
{
id: 4,
name: '二级11',
pid: 1,
},
{
id: 5,
name: '二级12',
pid: 1,
},
{
id: 6,
name: '二级21',
pid: 2,
},
{
id: 7,
name: '二级22',
pid: 2,
},
{
id: 8,
name: '三级11',
pid: 4,
},
]
function getTree(data) {
let parents = data.filter((v) => v.pid == 0)
children = data.filter((v) => v.pid !== 0)
dataToTree(parents, children)
function dataToTree(parents, children) {
parents.map((v) => {
children.map((c, i) => {
if (c.pid === v.id) {
let _c = JSON.parse(JSON.stringify(children))
_c.splice(i, 1)
dataToTree([c], _c)
if (v.children) {
v.children.push(c)
} else {
v.children = [c]
}
}
})
})
}
return parents
}