如何在两个对象中合并数组
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)和小提琴
http://jsfiddle.net/H4UGb/1/你可以通过将if语句中的通用代码放入一个函数中来解决这个问题…
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 正在更新mongod中两个对象内部的数组
- 添加两个对象以获取值的总和
- 如何使用javascript合并两个对象数组
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 如何对两个嵌套对象进行排序
- 在JavaScript中相等两个对象.在更改一时,秒会自动更改
- js字符串转换为具有两个值的对象
- 如何使用AngularJs比较两个对象的JSON
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 交换对象上两个属性的值
- Backbone relational无法实例化两个RelationalModel对象
- 如何在javascript中合并两个对象数组
- 删除两个独立对象中的属性,而不使用多余的删除语句
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 有可能让两个变量指向同一个对象吗?(javascript)
- 使用Javascript对象为具有两个背景图像的DIV设置样式时出现问题
- 如何在Javascript中连接两个结构不同的对象
- 如何使用jQuery合并两个json对象
- 如何按对象两个值对对象数组进行排序