【问题标题】:Merge object together将对象合并在一起
【发布时间】:2021-06-08 17:29:22
【问题描述】:

我有 2 个要合并的对象

Object1 = {'1234':{name: 'One'},'4567': {name: 'two'}}
Object2 = {'1234':{id: 1234, location: 'paris'},'4567':{id: 4567, location: 'london'}}

如果 id 与对象 key 匹配,则将其合并。

我想要这样的结果:

Object3 = {'1234':{id: 1234, name: 'One', location: 'paris'},'4567':{id: 4567, name: 'two', location: 'london'}}

如果我尝试扩展运算符或 Object.assign ,它会覆盖前一个对象。

【问题讨论】:

  • 你应该包含你的代码并解释它是如何失败的。
  • Object2 无效。它没有钥匙。看起来应该是一个数组。
  • 您的第二个对象不是有效的 JavaScript,因此在您尝试测试逻辑之前很久,解析器就会失败。
  • 我编辑了第二个对象
  • 这两个对象总是有相同的键吗?

标签: javascript


【解决方案1】:

您很可能希望遍历其中一个对象并合并每个值。

const Object1 = {'1234':{name: 'One'},'4567': {name: 'two'}};
const Object2 = {'1234':{id: 1234, location: 'paris'},'4567':{id: 4567, location: 'london'}};
const Object3 = {};

for (let key in Object1) {
    Object3[key] = {...Object2[key], ...Object1[key]}
}

console.log(Object3);

此外,您可以添加一些 if 语句来检查两个对象中是否存在 key。

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2015-12-27
    相关资源
    最近更新 更多