思考了一晚上没思考出来

img


封装一个函数
让数组变成下面这样
如何转换
求解
希望大家可以给我解决
最好是代码
谢谢大噶。

img

题主要的代码如下

img

<script>
     function FlatToNested(data, opt) {//树数据源扁平结构转嵌套
        opt = opt || {};
        var idFiled = opt.idFiled || 'id';
        var textFiled = opt.textFiled || 'name';
         var parentField = opt.parentField || 'pid';
        var i, l, treeData = [], tmpMap = [];
        for (i = 0, l = data.length; i < l; i++) tmpMap[data[i][idFiled]] = data[i];
        for (i = 0, l = data.length; i < l; i++) {
            if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) {
                if (!tmpMap[data[i][parentField]]['children'])
                    tmpMap[data[i][parentField]]['children'] = [];
                tmpMap[data[i][parentField]]['children'].push(data[i]);
            } else {
                treeData.push(data[i]);
            }
        }
        return treeData;
    }

    let arr = [
        { id: 1, pid: 0, name: '1' },
        { id: 2, pid: 0, name: '2' },
        { id: 3, pid: 1, name: '3' },
        { id: 4, pid: 3, name: '4' }
    ];
    var ndata = FlatToNested(arr);
    console.log(JSON.stringify(ndata,null,2))
</script>

帮助麻烦点下【采纳该答案】

定义新的数组,这是数组的嵌套,遍历arr数组push到新的数组。

img


答案