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

Javascript 如何使用Ramda计算数组中的重复数?,javascript,arrays,ramda.js,Javascript,Arrays,Ramda.js,我有一个具有重复值的数组,我需要使用ramda.js找出每个值在数组中出现的次数 这是我的阵列: [2013、2013、2013、2014、2014、2014、2015、2015、2015、2015、2015、2016、2016、2016、2016、2016、2017、2017] 这就是我想从中得到的: [3,4,7,5,3] 下面是一个在纯JavaScript中如何工作的示例 function count (arr) { const counts = {} arr.forEach((x

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

这是我的阵列: [2013、2013、2013、2014、2014、2014、2015、2015、2015、2015、2015、2016、2016、2016、2016、2016、2017、2017]

这就是我想从中得到的: [3,4,7,5,3]

下面是一个在纯JavaScript中如何工作的示例

function count (arr) {
  const counts = {}
  arr.forEach((x) => { counts[x] = (counts[x] || 0) + 1 })
  return Object.values(counts)
}
假设(与您的代码一样)重复数据不必按顺序排列,您可以使用
R.countBy()
R.values()
获得相同的结果:

const{pipe,countBy,identity,values}=R;
施工进度=[2013、2013、2013、2014、2014、2014、2014、2015、2015、2015、2015、2015、2015、2016、2016、2016、2016、2016、2016、2016、2016、2016、2017、2017]
常数countdups=管道(
伯爵(身份),
价值观
)
console.log(countdups(arr))

常量=[5,5,5,2,2,2,2,2,9,4];这似乎是一个令人惊讶的要求。像
{2013:3,2014:4,2015:7,2016:5,2017:3}
这样的结果似乎更有用,而且更容易获得,只需使用
R.countBy