zoukankan      html  css  js  c++  java
  • JS组装数据结构

    开始的数据结构如下:里面的工程数据是一条条的....

       var reg ={
            data: [
                 {
                    xmId: "c8bfc7f4-153c-4f85-b6bd-e0b47856ca0f",
                    xmName: "新建武汉至十堰高速铁路",
                    xmShortName: "汉十高铁",
                    projectId: "23a8dcdf-ad9b-4c34-8807-02e6fad2cdf4",
                    projectName: "安陆府河特大桥",
                    buildTypeCode: "Q",
                    jcb: "HSJC-2",
                    jlb: "HSJL-1",
                    sgb: "HSSG-1",
                    total: 4
                },
                {
                    xmId: "c8bfc7f4-153c-4f85-b6bd-e0b47856ca0f",
                    xmName: "新建武汉至十堰高速铁路",
                    xmShortName: "汉十高铁",
                    projectId: "ce574f2d-8f55-4f5c-8850-b37d01e123fc",
                    projectName: "安陆府河特大桥(DK091+092.615)十堰台(DK094+009.44~DK094+030.46)",
                    buildTypeCode: "T",
                    jcb: "HSJC-2",
                    jlb: "HSJL-1",
                    sgb: "HSSG-1",
                    total: 3
                },
                {
                    xmId: "c6bfc7f4-153c-4f85-b6bd-e0b47856ca0f",
                    xmName: "新建武汉至十堰高速铁路",
                    xmShortName: "汉十高铁11111",
                    projectId: "ce574f2d-8f55-4f5c-8850-b37d01e123fc",
                    projectName: "云安特大桥",
                    buildTypeCode: "T",
                    jcb: "HSJC-2",
                    jlb: "HSJL-1",
                    sgb: "HSSG-1",
                    total: 35
                }
            ],
            code: 0,
            message: "操作成功"
        };

    现在要做的是把项目ID相同的工程放在同一项目下--project数组里-数据结构如下:

     var data = [
            {
                xmId: "c8bfc7f4-153c-4f85-b6bd-e0b47856ca0f",
                xmName: "新建武汉至十堰高速铁路",
                xmShortName: "汉十高铁",
                project: [
                    {
                    projectId: "23a8dcdf-ad9b-4c34-8807-02e6fad2cdf4",
                    projectName: "安陆府河特大桥",
                    buildTypeCode: "Q",
                    jcb: "HSJC-2",
                    jlb: "HSJL-1",
                    sgb: "HSSG-1",
                    total: 4
                },
                    {
                        projectId: "ce574f2d-8f55-4f5c-8850-b37d01e123fc",
                        projectName: "安陆府河特大桥(DK091+092.615)十堰台(DK094+009.44~DK094+030.46)",
                        buildTypeCode: "T",
                        jcb: "HSJC-2",
                        jlb: "HSJL-1",
                        sgb: "HSSG-1",
                        total: 3
                    }
                ]
            },
    
            {
                xmId: "a1fd685f-ec44-4d46-8d4d-7b35c0ca08ca",
                xmName: "新建襄阳至武汉高速铁路",
                xmShortName: "襄武高铁",
                project: [{
                    projectId: "23b8dcdf-ad9b-4c34-8807-02e6fad2cdf4",
                    projectName: "襄武第一段",
                    buildTypeCode: "Q",
                    jcb: "HSJC-2",
                    jlb: "HSJL-1",
                    sgb: "HSSG-1",
                    total: 4
                },
                    {
                        projectId: "cd574f2d-8f55-4f5c-8850-b37d01e123fc",
                        projectName: "襄武第三段",
                        buildTypeCode: "T",
                        jcb: "HSJC-2",
                        jlb: "HSJL-1",
                        sgb: "HSSG-1",
                        total: 3
                    }
                ]
            }
        ];

    实现代码如下:

    var planData = [];
                              var map =[];
                              var data = reg.data;
                            for(var i=0;i<reg.data.length;i++){
                                var proData= {};
                                var xmData = {};
                                xmData.project = [];
                                var n = data[i].xmId;
                                xmData.xmId = data[i].xmId;
                                xmData.xmShortName = data[i].xmShortName;
                                proData.projectId = data[i].projectId;
                                proData.projectName = data[i].projectName;
                                proData.buildTypeCode = data[i].buildTypeCode;
                                proData.sgb = data[i].sgb;
                                proData.total = data[i].total;
                                if(!map[n]){
                                    map[n] = data[i].total;
                                    xmData.project.push(proData); //可能有问题
                                    planData.push(xmData);
                                }
                                else{ //项目ID已存在
                                    for(var j = 0; j < planData.length; j++){
                                        var aj = planData[j];
                                        if(aj.xmId == n){
                                            planData[j].project.push(proData);
                                            break;
                                        }
                                    }
                                }
                            }  

              console.log(
    planData);
  • 相关阅读:
    Linux 文件取交集 并集 差集
    阿里花名推荐
    Linux bg fg命令的使用
    python导入自己创建的本地包报错
    数值计算方法
    数据库oracle回顾
    使用visualBox创建Centos/7,搭建docker,安装mysql,及远程连接
    git 合并分支到master
    git 本地文件修改错误,重新取回服务器历史版本
    三本不错的计算机专业书籍(需求分析,开发实务,恶意代码分析)
  • 原文地址:https://www.cnblogs.com/qianxunpu/p/7144256.html
Copyright © 2011-2022 走看看