娴7号 2021-05-28 18:52 采纳率: 33.3%
浏览 234

js 合并数组并在指定位置插入对象

例如数组

    var testNew = {

        "name": "数据设置11",

        "key": "data-setting",

        "anchored": false,

        configUpdateMerge: '',

        "items": [{

                "label": "展示多sheet",

                "key": "showMultiSheet",

                value: '哈哈哈哈'

            },

            {

                "key": "can-export-csv",

                "label": "允许导出CSV数据",

                value: '一樣一樣'

            },

            {

                "key": "max-data-export",

                "label": "最大数据下载量",

            },

            {

                "key": "export-fields",

                "label": "CSV 导出字段",

                value: ''

 

            },

            {

                "label": "指标名称",

                "key": "1_indicator-label",

                value: ''

 

            },

        ]

    }

 

数组:

   var testold = {

        "name": "数据设置",

        "key": "data-setting",

        "anchored": true,

        configUpdateMerge: true,

        "items": [{

                "label": "展示多sheet",

                "key": "showMultiSheet",

                value: '4r5'

            },

            {

                "key": "can-export-csv",

                "label": "允许导出CSV数据111",

                value: '44'

 

            },

            {

                "key": "export-fields",

                "label": "CSV 导出字段",

                "options": [

                    [444]

                ],

                "multiSheets": true,

                "value": [

                    [8888]

                ],

 

            },

            {

                "label": "指标名称",

                "key": "1_indicator-label",

                value: '55'

 

            },

            {

                "label": "指标名称",

                "key": "2_indicator-label",

            },

            {

                "label": "指标名称",

                "key": "3_indicator-label",

                value: '55'

 

            },

            {

                "label": "指标名称",

                "key": "4_indicator-label",

            },

            {

                "label": "指标名称",

                "key": "5_indicator-label",

                value: '55'

 

            },

            {

                "label": "指标名称",

                "key": "6_indicator-label",

            },

        ]

    }

怎么根据合并数组后根据key相同保留后面数组的数据,旧数组没有的key要在相应的位置插进去再返回?

一头雾水,求求大神

  • 写回答

5条回答 默认 最新

  • 关注

     以新对象为基础

    代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。

        var testNew = {
            "name": "数据设置11",
            "key": "data-setting",
            "anchored": false,
            configUpdateMerge: '',
            "items": [{
                    "label": "展示多sheet",
                    "key": "showMultiSheet",
                    value: '哈哈哈哈'
                },
                {
                    "key": "can-export-csv",
                    "label": "允许导出CSV数据",
                    value: '一樣一樣'
                },
                {
                    "key": "max-data-export",
                    "label": "最大数据下载量",
                },
                {
                    "key": "export-fields",
                    "label": "CSV 导出字段",
                    value: ''
                },
                {
                    "label": "指标名称",
                    "key": "1_indicator-label",
                    value: ''
                },
            ]
        }
       var testold = {
            "name": "数据设置",
            "key": "data-setting",
            "anchored": true,
            configUpdateMerge: true,
            "items": [{
                    "label": "展示多sheet",
                    "key": "showMultiSheet",
                    value: '4r5'
                },
                {
                    "key": "can-export-csv",
                    "label": "允许导出CSV数据111",
                    value: '44'
                },
                {
                    "key": "export-fields",
                    "label": "CSV 导出字段",
                    "options": [
                        [444]
                    ],
                    "multiSheets": true,
                    "value": [
                        [8888]
                    ],
                },
                {
                    "label": "指标名称",
                    "key": "1_indicator-label",
                    value: '55'
                },
                {
                    "label": "指标名称",
                    "key": "2_indicator-label",
                },
                {
                    "label": "指标名称",
                    "key": "3_indicator-label",
                    value: '55'
                },
                {
                    "label": "指标名称",
                    "key": "4_indicator-label",
                },
                {
                    "label": "指标名称",
                    "key": "5_indicator-label",
                    value: '55'
                },
                {
                    "label": "指标名称",
                    "key": "6_indicator-label",
                },
            ]
        }
    testold.items.forEach(function(v, i){
    	var t = testold.items.findIndex(u=>u.key==v.key);
    	if (t != -1) {
    		testNew.items[t] = v;
    	} else {
    		testNew.items.push(v);
    	}
    });
    console.log(testNew);
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了