【发布时间】:2021-06-15 11:12:53
【问题描述】:
我在 Lodash isEqual 函数的帮助下比较两个对象,并尝试与 difference 函数进行比较。
difference 函数返回整个对象,而不是只返回那些不同的属性。
有没有办法只找到对象中不匹配的属性?
【问题讨论】:
-
_.difference()应该与数组一起使用。
标签: javascript lodash javascript-objects
我在 Lodash isEqual 函数的帮助下比较两个对象,并尝试与 difference 函数进行比较。
difference 函数返回整个对象,而不是只返回那些不同的属性。
有没有办法只找到对象中不匹配的属性?
【问题讨论】:
_.difference() 应该与数组一起使用。
标签: javascript lodash javascript-objects
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))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
【讨论】: