简介
在前端开发中,我们经常要比较两个对象是否相等,在不同的业务场景下,比较的情形也不同。为了解决这个问题,有人写了一个 npm 包:objects-compare。它可以比较两个对象是否相等,并且可以自定义比较规则。
安装
使用 npm 可以直接安装这个包:
npm install objects-compare --save
使用
objects-compare 的使用非常简单。我们只需要调用它的 compare(a, b)
函数即可,它会返回一个布尔值,表示两个对象是否相等。
const compare = require('objects-compare'); const obj1 = { foo: 'hello', bar: 123 }; const obj2 = { bar: 123, foo: 'hello' }; console.log(compare(obj1, obj2)); // true
你会发现上面的例子非常简单,它只是比较了两个对象的属性值是否相等。如果我们需要自定义比较规则,该怎么办呢?
objects-compare 支持自定义比较规则。比如我们可以定义一个规则:如果一个属性是一个数组,那么就比较数组的元素是否相等。
-- -------------------- ---- ------- ----- ------- - --------------------------- ----- ---- - - ---- --- -- --- ---- - -- --- -- -- - -- ----- ---- - - ---- --- -- --- ---- - -- --- -- -- - -- ----- ------------ - --- -- -- - -- ----------------- -- ----------------- - -- --------- --- --------- ------ ------ --- ---- - - -- - - --------- ---- - -- --------------- ------ ------ ------ - ------ ----- - ------ ---------- -- ------------------------- ----- --------------- -- -----
上面的例子中,我们定义了一个 arrayCompare
函数,它会比较两个数组的元素是否相等。如果两个属性都是数组,那么就调用 arrayCompare
函数进行比较。
总结
objects-compare 是一个非常方便的 npm 包,可以帮助我们比较两个对象是否相等,并且可以自定义比较规则。在实际开发中,我们经常会遇到对象比较的问题,objects-compare 可以很好地解决这个问题。如果你还没有使用过这个包,不妨尝试一下。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600572d481e8991b448e90a8