如何从Javascript中的两个对象返回不匹配的项目

问题描述

我有以下对象

defaultObject = {
  item1: ""
  item2: 2
  item3: 3
  item4: ""
}

newObject = {
  item1: 1
  item2: 4
  item3: 3
  item4: "something"
}

我期望的输出如下

{
  item1: 1
  item2: 4
  item4: "something"
}

我试过Compare two Arrays with Objects and create new array with unmatched objects

解决方法

应该这样做:

oldo = {
  item1: "",item2: 2,item3: 3,item4: ""
}

newo = {
  item1: 1,item2: 4,item4: "something"
}
const res=Object.entries(newo).reduce((a,[k,v])=>(oldo[k]==v||(a[k]=v),a),{});
console.log(res);

res 对象仅由在 oldo 对象中找到的那些条目(属性)组成。