例如数组
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要在相应的位置插进去再返回?
一头雾水,求求大神
以新对象为基础
代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。
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);
循环遍历判断key是否存在,如果不存在就push进去。
是要怎么合并?
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",
},
]
}
testNew.items.forEach(function(v, i){
var t = testold.items.some(u=>u.key==v.key);
if (!t) {
testold.items.splice(i, 0, v);
}
});
console.log(testold);
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632