数组转树

81 阅读1分钟
const list = [
    {name:'研发',parent:0,id:1},
    {name:'营销',parent:0,id:2},
    {name:'研发-1',parent:1,id:3},
    {name:'研发-2',parent:1,id:4},
    {name:'研发-1-1',parent:3,id:5},
    {name:'营销-1',parent:2,id:6},

]

const listToTree = (arr,parentId)=>{
    let newarr = []
    for(let it of arr){
        if(it.parent===parentId){
        it['children'] = listToTree(arr,it.id)
        newarr.push(it)
    }
}
    return newarr
}
const listToTree = (arr,parentId)=>{
    return arr.filter(it=>it.parent===parentId).map(it=>({...it,children:listToTree(arr,it.id)}))
}