Lodash是与小写特定属性的Equal比较



是否有lodash方法用于比较两个对象,其中以不区分大小写的方式比较某个属性

const obj1 = { name: 'Dave', course: 'Math' };
const obj2 = { name: 'dave', course: 'Math' };

比较对于name是不区分大小写的,但对于其他属性是严格相等的

按照以下思路思考(显然只是举例(:

var result = _.isEqual(
_.omit(obj1, ['creation', 'deletion']),
_.omit(obj2, ['creation', 'deletion'])
);

使用_.isEqualWith()将对象与自定义程序进行比较。如果键(第三个自定义参数(是name,则进行不敏感比较,对于其他键,则返回undefined以使用默认比较。

const obj1 = { name: 'Dave', course: 'Math' };
const obj2 = { name: 'dave', course: 'Math' };
const insensetiveStrCompare = (v1, v2) =>
!v1.localeCompare(v2, undefined, { sensitivity: 'accent' }) // returns 0 if equal, and !0 === true
const result = _.isEqualWith(
obj1, 
obj2, 
(v1, v2, key) => key === 'name' ? 
insensetiveStrCompare(v1, v2)
:
undefined
)
console.log(result)
<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>

最新更新