更新具有匹配属性的对象并忽略新属性

6 javascript typescript ecmascript-6

我正在使用Typescript,我想用另一个更新对象,只在匹配的键上.

// Destination
objectOne = {
  a: 0,
  b: 0,
};

// Source
objectTwo = {
  a: 1,
  b: 1,
  c: 1,
};

// Expected
result = {
  a: 1,
  b: 1,
};

// Current solution
const current = {};
Object.keys(objectTwo).forEach(key => key in objectOne ? current[key] = objectTwo[key] : null);

console.log(current);
Run Code Online (Sandbox Code Playgroud)

有一个单行(即不是一个迭代键的自定义函数)会忽略c源中的属性吗?我还想避免使用诸如lodash或JQuery之类的库.

复制编辑我的问题不是关于合并两个对象,我的问题是忽略第二个对象中不在第一个对象中的字段.

小智 5

一段时间没有答案后,似乎最短的解决方案是我自己提供的解决方案:

Object.keys(newObj).forEach(key => key in oldObj? result[key] = newObj[key] : null)
Run Code Online (Sandbox Code Playgroud)