我有数组
let arr = ["hello","Hey","Moon","Hey,"Turtle"];
我需要计算一个元素出现在数组中的次数。 结果需要像这样:
"Hello":1
"hey":2
"Moon":1
"Turtle":1
谢谢
答案 0 :(得分:0)
非常简单-像这样使用reduce
返回一个对象:
let arr = ["hello", "Hey", "Moon", "Hey", "Turtle"];
const res = arr.reduce((a, c) => (a[c] = (a[c] || 0) + 1, a), {});
console.log(res);
请注意,不能保证一定的顺序。
答案 1 :(得分:0)
您可以使用Array#reduce
将列表聚合为单个值。
var arr = ["hello", "Hey", "Moon", "Hey", "Turtle"];
function checkCount(list, itemToFind) {
return list.reduce(function(count, item) {
return count + (item === itemToFind ? 1 : 0);
}, 0);
}
console.log(checkCount(arr, "Hey"));
您还可以返回一个对象,其中包含每个属性以及到目前为止已发现该属性的次数。
var arr = ["hello", "Hey", "Moon", "Hey", "Turtle"];
function checkCount(list) {
return list.reduce(function(result, item) {
result[item] = item in result ? result[item] + 1 : 1;
return result;
}, {});
}
console.log(checkCount(arr));