lodash - isEqual 忽略未定义

lodash - isEqual ignore undefined

如何使用 lodash 深入检查两个对象的相等性,忽略未定义的。

const a = { a: 1, b: 2 };
const b = { a: 1 };

_.isEqual(a, b); // => true

您可以使用 _.isMatch() 在对象 (a) 和源 (b) 之间执行部分深度比较以确定对象 是否包含 相当于源的 属性 个值。

const a = { a: 1, b: 2 };
const b = { a: 1 };

console.log(_.isEqual(a, b)); // false
console.log(_.isMatch(a, b)); // true
console.log(_.isMatch(b, a)); // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

这仅在源中不存在密钥时才有效。如果存在显式值为 undefined 的键,则结果将为 false。

const a = { a: 1, b: 2 };
const b = { a: 1, c: undefined };

console.log(_.isMatch(a, b)); // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>