获取javascript中两个对象之间差异的属性

mil*_*ong 4 javascript object difference

假设我有一个看起来像这样的对象:

{
  prop1: false,
  prop2: false,
  prop3: false
}
Run Code Online (Sandbox Code Playgroud)

和另一个看起来像这样的对象:

{
  prop1: false,
  prop2: true,
  prop3: false
}
Run Code Online (Sandbox Code Playgroud)

差异在prop2酒店内.是否有任何方法或库(虽然首选香草)将比较两个对象,找到具有不同值的属性,并返回属性名称(在这种情况下prop2)?

我尝试使用lodash中的差异和差异功能没有成功.任何帮助或建议将不胜感激!

Nin*_*olz 11

您可以通过检查不相等的值来过滤密钥(假设相同的密钥).

var obj1 = { prop1: false, prop2: false, prop3: false },
    obj2 = { prop1: false, prop2: true, prop3: false },
    difference = Object.keys(obj1).filter(k => obj1[k] !== obj2[k]);
    
console.log(difference);
Run Code Online (Sandbox Code Playgroud)

  • @loretoparisi,此解决方案完全采用op的对象,而不是未指定的嵌套对象。 (2认同)