2 回答
TA贡献1784条经验 获得超8个赞
如果要检查两个对象上存在哪些属性以及值的差异,可以使用Object.entries将第一个对象转换为数组。使用reduce循环数组通,检查并构建新的对象。
var firstObject = {
one: 1,
four: 55,
six: 6
}
var secondObject = {
one: 1,
two: 2,
three: 3,
four: 4
}
var returnObject = Object.entries(firstObject).reduce((c, [k, v]) => {
if (secondObject[k] !== undefined && v !== secondObject[k]) c[k] = v;
return c;
}, {});
console.log(returnObject);
一个班轮代码:
var returnObject = Object.entries(firstObject).reduce((c, [k, v]) => secondObject[k] !== undefined && v !== secondObject[k] ? Object.assign(c, {[k]: v}) : c, {})
TA贡献1799条经验 获得超8个赞
您可以获取条目,过滤和映射新对象。
var firstObject = { one: 1, four: 55, six: 6 },
secondObject = { one: 1, two: 2, three: 3, four: 4 },
result = Object.assign({}, ...Object
.entries(firstObject)
.filter(([k, v]) => k in secondObject && secondObject[k] !== v)
.map(([k, v]) => ({ [k]: v }))
);
console.log(result);
添加回答
举报