我正在使用 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);
是否有单行代码(即不是迭代键的自定义函数)会忽略 c
中的属性来源 ?我还想避免使用 lodash 或 JQuery 等库。
重复编辑 我的问题不是关于合并两个对象,我的问题是关于忽略第二个对象中不在第一个对象中的字段。
最佳答案
过了一段时间没有答案,似乎最短的解决方案是我自己提供的:
Object.keys(newObj).forEach(key => key in oldObj? result[key] = newObj[key] : null)
关于javascript - 更新具有匹配属性的对象并忽略新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51206836/