【问题标题】:JavaScript/TypeScript - Object assign only available propertiesJavaScript/TypeScript - 对象仅分配可用属性
【发布时间】:2019-01-09 21:30:12
【问题描述】:

以下用例:假设我有一个具有以下属性的对象:

const objOne = {
  car: 'ford',
  location: 'Munich',
  driver: 'John'
}

还有第二个 Obj,它只具有第一个 Obj 的一些属性:

const objTwo = {
  car: 'BMW',
  driver: 'Marta'
}

有没有办法将第二个 obj 的属性分配给第一个 obj,而不会丢失第一个 obj 的属性。在这种情况下location: 'Munich'。我知道事实上有一个像Object.assign 这样的方法,但是这个方法完全复制了目标obj,我显然不想这样做。

【问题讨论】:

  • 期望的输出是什么?
  • 事实上这就是Object.assign会做的事情

标签: javascript typescript object ecmascript-6


【解决方案1】:

这正是Object.assign的行为

Object.assign() 方法用于将所有可枚举自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

const objOne = {
  car: 'ford',
  location: 'Munich',
  driver: 'John'
}
        
const  objTwo = {
  car: 'BMW',
  driver: 'Marta'
}

console.log(objOne);
console.log(objTwo);

Object.assign(objOne, objTwo);
console.log('--assign--');
console.log(objOne);

【讨论】:

  • 哦,我搞砸了,感谢您的澄清。我真的以为第一个objs。被第二个完全覆盖....
猜你喜欢
  • 2011-09-09
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2016-01-15
  • 2019-08-23
  • 2016-04-25
相关资源
最近更新 更多