计算元素出现在数组中的次数

时间:2019-08-08 13:04:04

标签: javascript arrays

我有数组

let arr = ["hello","Hey","Moon","Hey,"Turtle"];

我需要计算一个元素出现在数组中的次数。 结果需要像这样:

"Hello":1
"hey":2
"Moon":1
"Turtle":1

谢谢

2 个答案:

答案 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));