首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将两个Javascript对象合并为键、数组对

将两个Javascript对象合并为键、数组对
EN

Stack Overflow用户
提问于 2018-05-16 20:25:41
回答 3查看 518关注 0票数 -2

如果我有两个对象:

代码语言:javascript
复制
const obj1 = {
 "1,1" : "hello",
}

代码语言:javascript
复制
 const obj2 = {
 "1,1" : "hi",
}

合并它们的最简单方法是什么:

代码语言:javascript
复制
obj3 = {
"1,1": ["hello", "hi"],
} 

我可以在这里使用扩展运算符吗?谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-05-16 20:31:16

另一种方法是使用函数reduce

代码语言:javascript
复制
const obj1 = {"1,1" : "hello"},
      obj2 = {"1,1" : "hi"},
      obj3 = [obj1, obj2].reduce((a, c) => {
                Object.keys(c).forEach(k => (a[k] || (a[k] = [])).push(c[k]));
                return a;
             }, {});

console.log(obj3);
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 0
EN

Stack Overflow用户

发布于 2018-05-16 20:37:49

一种简单的方法是使用内部for (..在...)javascript :例如

代码语言:javascript
复制
obj1 = {1 : 2};
obj2 = {1 : 3};
obj3 = {};

for (element1 in obj1) {
 for (element2 in obj2) { 
   if (element1 == element2) {
        obj3[element1] = [];
        obj3[element1].push(obj1[element1]);
        obj3[element1].push(obj2[element2]);
    }
   }
  }
//result : obj3 = {1 : [2,3]}

但是如果obj1 = {"1,1“:2,1.1 : 3}或者obj1 = {"1,1”:1,2,3,4}呢?你确实需要“很好地定义”你的需求,但这应该是一个很好的开始。

票数 0
EN

Stack Overflow用户

发布于 2018-05-16 20:41:42

代码语言:javascript
复制
var obj1 = {
    a: 1,
    b: 2
};

var obj2 = {
    a: 12,
    c: 20
};

console.log(merge(obj1, obj2));

function merge(obj1, obj2) {

    var obj3 = {};

    Object.keys(obj1).forEach(function(key) {
        pushIntoObj3(key, obj1[key]);
    });

    Object.keys(obj2).forEach(function(key) {
        pushIntoObj3(key, obj2[key]);
    });

    function pushIntoObj3(key, val) {
        if (!obj3[key]) {
            obj3[key] = [];
        }
        obj3[key].push(val);
    }

    return obj3;
}

输出:

代码语言:javascript
复制
{
  "a": [ 1, 12 ],
  "b": [ 2 ],
  "c": [ 20 ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50370916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档