首页 > 解决方案 > 将 json 响应合并到已经初始化的对象 javascript

问题描述

我有两个不同的对象,但它们有一些共同的属性。两者都填充了一些值。如果 X 对象的值在两个对象中具有相同的键,我想分配 X 对象的值以覆盖 Y 的属性值,否则除了 y 的空道具键应该保留之外什么也不做。

我可以通过一些自定义映射操作来实现这个目的,但是有没有一种简单的方法可以在 javascript 中做到这一点?

var x = {
  name: 'John',
  addressInformation: null
}

var y = {
  name: '',
  paymentInformation: {
    iban: '12313123',
    cardNumber: '1231231231'
  },
  addressInformation: {
    city: 'Berlin'
  }
}

合并的对象应该在我的场景中:

y = {
  name 'John',
  paymentInformation: {
    iban: '12313123',
    cardNumber: '1231231231'
  },
  addressInformation: {
    city: 'Berlin'
  }
}

(我只分享了该对象的简化版本。还有更多属性)

标签: javascript

解决方案


Object.assignspread 运算符将完成这项工作。


const newObject = Object.assign(y, x);
const newObject = {
  ...y,
  ...x
}

另外,aweebit 说的很重要。


推荐阅读