Lodash 两个对象之间的差异

Anm*_*hra 7 javascript javascript-objects lodash

我正在 Lodash 函数的帮助下比较两个对象isEqual,并尝试通过函数找出差异difference

difference函数返回整个对象,而不是仅返回那些不同的属性。

有没有办法只找到对象中不匹配的属性?

Dan*_*ani 18

const obj1 = {
  a: "old value",
  b: {
    c: "old value"
  },
  d: 123
}
const obj2 = {
  a: "old value",
  b: {
    c: "new value"
  },
  d: 321
}
const changes =
  _.differenceWith(_.toPairs(obj2), _.toPairs(obj1), _.isEqual)

// Changes in array form
console.log(changes)
// Changes in object form
console.log(_.fromPairs(changes))
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)