gpt4 book ai didi

javascript - 使用reduce计算数组中每个元素的出现次数

转载 作者:行者123 更新时间:2023-12-01 01:01:45 25 4
gpt4 key购买 nike

使用reduce计算数组中每个元素的出现次数。我的代码错了!

我的代码:

function countOccurrences(arr) {
return arr.reduce(function(a, b){
var count = 0;
for(var i = 0; i < arr.length; i++){
if (arr[i] == b) {
return count + 1;
}
}
}, '');
}

console.log(countOccurrences(['a', 'b', 'c', 'b', 'a']));

预期:

// { 
// a: 2,
// b: 2,
// c: 1
// }

非常感谢!

最佳答案

你犯了两个错误:

  • 通过传递 '' 作为第二个参数,将 a 的初始值设置为空字符串。
  • 您不需要在 reduce() 内再次循环。 reduce() 它会迭代所有元素。

function countOccurrences(arr) {
return arr.reduce(function(a, b){
a[b] = a[b] + 1 || 1
return a;
}, {});
}
console.log(countOccurrences(['a', 'b', 'c', 'b', 'a']));

使用箭头函数的在线将是

const count = (arr) => arr.reduce((ac,a) => (ac[a] = ac[a] + 1 || 1,ac),{})

console.log(count(['a', 'b', 'c', 'b', 'a']));

关于javascript - 使用reduce计算数组中每个元素的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56007520/

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