const obj = {}
let arr = [
{
id: 20, // id
// pid: 5 // 父级id
},
{
id: 10, // id
pid: 5 // 父级id
},
{
id: 1,
pid: 2
},
{
id: 3,
pid: 4
},
{
id: 2,
pid: 3
},
{
id: 100,
pid: 5
},
{
id: 10099,
pid: 6
},
{
id: 1000,
pid: 100
}
]
arr.forEach((i, index) => {
i.index = index
obj[i.id] = i
})
arr.forEach((i, index) => {
if (i.pid) {
if (obj[i.pid]) {
let pitem = arr[obj[i.pid].index]
if (!pitem.c) pitem.c = []
pitem.c.push(i)
i.r = true
}
}
})
let newarr = arr.filter(i => !i.r)
console.log(newarr)
网友评论