javascript - 使用新键合并特定对象数组

标签 javascript jquery lodash

我正在尝试将两个对象合并为一个(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 设置为值。

Demo

关于javascript - 使用新键合并特定对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34208283/

相关文章:

javascript - 如何使用jquery获取属性值的一部分

javascript - 在 jQuery weekcalendar 中将自定义变量设置为 calEvent

javascript - 在 NodeJS 中查找和替换的更简洁方法?

angular - Typescript 按状态排序列表(字符串值)

javascript - 使用多个键对数组对象进行排序 : Javascript

javascript - Phonegap - 使用 window.location.replace 离开索引范围后处理推送通知

javascript - 如何将 JavaScript 对象值转换为数组

javascript - Jquery在 'X'滚动的视口(viewport)高度量后添加CSS类

jquery :has check for images then apply css

javascript - 使用nodejs查找对象数组中的特定键值