gpt4 book ai didi

javascript - 如何使用 Ramda 计算数组中的重复项?

转载 作者:行者123 更新时间:2023-11-30 09:17:58 25 4
gpt4 key购买 nike

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

这是我的数组:[2013、2013、2013、2014、2014、2014、2014、2015、2015、2015、2015、2015、2015、2015、2016、2016、2016、2016、2016、2017 , 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;

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));
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>

关于javascript - 如何使用 Ramda 计算数组中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53711491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com