发布
社区首页 >问答首页 >如何使用Ramda计算数组中的重复数?

如何使用Ramda计算数组中的重复数?
EN

Stack Overflow用户
提问于 2018-12-10 18:22:48
回答 1查看 1.9K关注 0票数 3

我有一个具有重复值的数组,我需要使用ramda.js查找每个值在数组中发生的次数。

这是我的阵列: 2013,2013,2013,2014,2014,2014,2014,2015,2015,2015,2015,2015,2015,2015,2015,2016,2016,2016,2016,2016,2016,2017,2017,2017,2017

这就是我想要得到的: 3,4,7,5,3

下面是一个示例,说明它如何在纯JavaScript中工作。

代码语言:javascript
代码运行次数:0
复制
function count (arr) {
  const counts = {}
  arr.forEach((x) => { counts[x] = (counts[x] || 0) + 1 })
  return Object.values(counts)
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-10 18:27:20

假设(就像在您的代码中)不需要按顺序排列,您可以使用R.countBy()R.values()获得相同的结果

代码语言:javascript
代码运行次数:0
复制
const { pipe, countBy, identity, values } = R;

const arr = [2013, 2013, 2013, 2014, 2014, 2014, 2014, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016, 2017, 2017, 2017]

const countDupes = pipe(
  countBy(identity),
  values
)

console.log(countDupes(arr));
代码语言:javascript
代码运行次数:0
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53711491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档