专注前端研究二十年 2021-11-14 21:12 采纳率: 33.3%
浏览 78
已结题

思考了一晚上没思考出来

img


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

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-11-14 21:19
    关注

    题主要的代码如下

    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>
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月19日
  • 已采纳回答 11月14日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助