前端经典面试题,数组转树

52 阅读1分钟
```const array = [
    { id: 1, name: 'Node 1', parentId: null },
    { id: 2, name: 'Node 2', parentId: 1 },
    { id: 3, name: 'Node 3', parentId: 1 },
    { id: 4, name: 'Node 4', parentId: 2 },
    { id: 5, name: 'Node 5', parentId: 2 },
    { id: 6, name: 'Node 6', parentId: null }
  ];
  
function arrayToTree(array,parentId=null){
    let result = []
    array.forEach(element => {
        if(element.parentId==parentId){
            let children = arrayToTree(array,element.id)
            if(children.length>0){
                element.children = children
            }
            result.push(element)
        }
    });
    return result
}
console.log(arrayToTree(array))