编辑代码

const treeArr = [
  {id: 1, name: 'A', parentId: null},
  {id: 2, name: 'B', parentId: 1},
  {id: 3, name: 'C', parentId: 1},
  {id: 4, name: 'D', parentId: 2},
  {id: 5, name: 'E', parentId: 2},
  {id: 6, name: 'F', parentId: 3},
  {id: 7, name: 'G', parentId: 3},
  {id: 8, name: 'H', parentId: 4},
]


function toTree(nodes){
    const map = {}
    const tree = []

    nodes.forEach(node=>{
        map[node.id] = node
        node.children = []
    })

    nodes.forEach(node=>{
        if(node.parentId) {
            map[node.parentId].children.push(node)
        }else {
            tree.push(node)
        }
        
    })
    console.log(JSON.stringify(tree))
    return tree

}

toTree(treeArr)