一维数组转换树结构

list是个一维数组数据,每项数据中有id和pid,id是自己的唯一标识符,pid是自己父级的id。

function(list){
let dealOptions = []
// 给每个数据加children属性
_.forEach(list, one => {
one.children = []
})
_.forEach(list, one => {
let findIndex = _.findIndex(list, item => {
return item.id === one.pid
})
if ((!one.pid && one.pid !== 0 && one.pid !== false) || findIndex === -1) {
dealOptions.push(one)
} else {
list[findIndex].children.push(one)
}
})
return dealOptions
}

posted @ 2020-06-30 18:11  无欲则强  阅读(348)  评论(0)    收藏  举报