[英]How to merge arrays in two objects?
我有类似的东西:
var object1 = { 'tab1' : [{ test : 10 }, { test : 15 }], 'tab2' : [{ test : 15 }] };
var object2 = { 'tab2' : [{ test : 35 }, { test : 25 }], 'tab3' : [{ test : 40 }] };
我需要结果:
var object3 = {
'tab1' : [{ test : 10 }, { test : 15 }],
'tab2' : [{ test : 35 }, { test : 25 }, { test : 15 }],
'tab3' : [[{ test : 40 }]
};
我怎样才能做到这一点?
$.extend(true, object1, object2)
在tab2
返回没有{ test : 15 }
对象
我会在这里使用javascript,类似于
var merged = [];
for (var key in object1) {
if (object1.hasOwnProperty(key)){
var obj1Arr, obj2Arr;
obj1Arr = object1[key];
obj2Arr = object2[key];
if (obj1Arr) merged = merged.concat(obj1Arr);
if (obj2Arr) merged = merged.concat(obj2Arr);
object3[key] = merged;
merged = [];
}
}
for (var key in object2) {
if (object2.hasOwnProperty(key) && !object3[key]){ // ignore the keys we already found
var obj1Arr, obj2Arr;
obj1Arr = object1[key];
obj2Arr = object2[key];
if (obj1Arr) merged = merged.concat(obj1Arr);
if (obj2Arr) merged = merged.concat(obj2Arr);
object3[key] = merged;
merged = [];
}
}
console.log(object3)和一个小提琴
你可以通过将if语句中的公共代码放入函数中来清理它...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.