Lodash 是一个 JavaScript 实用工具库,提供了许多用于操作数组、对象、数字等的函数。其中,_.uniq
或 _.uniqBy
是用于去重的函数。
去重是指从数组中移除重复的元素,使得每个元素只出现一次。
_.uniq(array)
_.uniqBy(array, iteratee)
_.uniq
const _ = require('lodash');
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = _.uniq(array);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
_.uniqBy
const _ = require('lodash');
const array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }
];
const uniqueArray = _.uniqBy(array, 'id');
console.log(uniqueArray);
// 输出: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]
for
循环更快。_.uniqBy
允许你根据对象的特定属性进行去重,这在处理复杂数据结构时非常有用。_.uniq
没有按预期去重?原因:
===
)来比较元素,对于对象,这意味着只有当它们引用同一个对象时才会被认为是相同的。解决方法:
_.uniqBy
并提供一个迭代函数,根据对象的某个属性进行去重。const _ = require('lodash');
const array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }
];
const uniqueArray = _.uniqBy(array, item => item.id);
console.log(uniqueArray);
// 输出: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]
通过这种方式,可以确保根据对象的特定属性进行正确的去重。
领取专属 10元无门槛券
手把手带您无忧上云