SOURCE

var arr = [{
    id: 1,
    name: 'x1'
}, {
    id: 2,
    name: 'x2'
}, {
    id: 3,
    name: 'x3',
    parentId: 2
}]

const tree =  [{
        id: 1,
    name: "x1"
 }, {
        id: 2,
    name: "x2",
        children: [{
              id: 3,
          name: "x3"
        }]
 }]

console.log(arr)
var result = []
var finded = []
function setTree(arr){
    for(var i = 0 ;i<arr.length;i++){
        if(arr[i]['parentId'] === undefined){
            result.push(a[i])
            finded.push(1)
        }else{
            finded.push(0)
        }
    }
    function deepTree(done,result){
        for(key in result){
            if(done['parentId'] === result[key]['id']){
                if(result[key]['children'] === undefined){
                    result[key]['children'] = []
                    var setter = {}
                    setter['id'] = done['id']
                    setter['name'] = done['name']
                    result[key]['children'].push(setter)
                    return true
                }else{
                    var setter = {}
                    setter['id'] = done['id']
                    setter['name'] = done['name']
                    result[key]['children'].push(setter)
                    return true
                }
            }else{
                if(result[key]['children'] === undefined){
                    return false
                }else{
                    deepTree(done,result[key]['children'])
                }
            }
        }
        return false
    }
    for(var j =0;j<arr.length;j++){
        
    }
}
console 命令行工具 X clear

                    
>
console