我正在尝试将两个对象合并为一个(obj1 和 obj2 合并为 objResult):
var obj1 = {
0: [{obj1key1: 'obj1value1'}, {obj1key2: 'obj1value2'}],
1: [{obj1key3: 'obj1value3'}, {obj1key4: 'obj1value4'}],
2: [{obj1key5: 'obj1value5'}, {obj1key6: 'obj2value6'}]
};
var obj2 = {
0: [{obj2key1: 'obj2value1'}, {obj2key2: 'obj2value2'}],
1: [{obj2key3: 'obj2value3'}, {obj2key4: 'obj2value4'}],
2: [{obj2key5: 'obj2value5'}, {obj2key6: 'obj2value6'}]};
var objResult = {
0: {
0: [{obj1key1: 'obj1value1'}, {obj1key2: 'obj1value2'}],
1: [{obj2key1: 'obj2value1'}, {obj2key1: 'obj2value1'}]
},
1: {
0: [{obj1key3: 'obj1value3'}, {obj1key4: 'obj1value4'}],
1: [{obj2key3: 'obj2value3'}, {obj2key4: 'obj2value4'}]
},
2: {
0: [{obj1key5: 'obj1value5'}, {obj1key6: 'obj1value6'}],
1: [{obj2key5: 'obj2value5'}, {obj2key6: 'obj2value6'}]
}
}
我尝试了 jQuery 和 lodash 的合并功能,但没有成功。 您能建议将这两个对象合并为一个的最佳方法吗?使用纯 JS 或 jquery/lodash。
最佳答案
迭代其中一个对象中的键,对于每个对象,将结果对象上的该键设置为包含两个原始对象中的值的对象。
function merge(obj1, obj2) {
var objResult = {};
Object.keys(obj1).forEach(function(key) {
objResult[key] = {
0: obj1[key],
1: obj2[key]
}
})
return objResult;
}
这假设两个对象具有相同的键集。如果不存在,您可以迭代两个对象的键,当该对象不包含该键时,这会将 undefined 设置为值。
关于javascript - 使用新键合并特定对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34208283/