乐闻世界logo
搜索文章和话题

Lodash:从数组中获取重复值

1 个月前提问
24 天前修改
浏览次数2

1个答案

1

在JavaScript中,利用Lodash库来从数组中获取重复值是一种常见的需求。

首先,我们可以使用Lodash的 _.countBy函数来计算数组中每个元素出现的次数,再结合 _.keys_.filter函数来筛选出出现次数超过一次的元素。

这里是一个具体的例子:

假设我们有一个数组:[1, 2, 2, 3, 4, 4, 5],我们想要找到这个数组中的重复元素。

javascript
import _ from 'lodash'; // 原始数组 const originalArray = [1, 2, 2, 3, 4, 4, 5]; // 使用 _.countBy 来计算数组中每个值的出现次数 const countElements = _.countBy(originalArray); // countElements 的结果是:{ '1': 1, '2': 2, '3': 1, '4': 2, '5': 1 } // 过滤出现次数大于1的元素 const duplicates = _.filter(_.keys(countElements), (key) => countElements[key] > 1); // duplicates 的结果是:['2', '4'],这表示数字2和4是重复的 // 将字符串数组转换为数字数组 const duplicateNumbers = duplicates.map(Number); // duplicateNumbers 的结果是:[2, 4]

在这个例子中,我们首先通过 _.countBy函数计算了每个元素的出现次数,然后使用 _.keys获取所有的键(即原始数组中的值),接着用 _.filter筛选出那些出现次数大于1的键,最后将结果从字符串数组转换为数字数组。

这种方法不仅清晰,而且利用了Lodash提供的高效函数,使代码既简洁又易于理解。

2024年8月15日 20:16 回复

你的答案