JavaScript 统计数组中所有项的出现次数

JavaScript 统计数组中所有项的出现次数

在本文中,我们将看到如何统计JavaScript数组中所有项的出现次数。做到这一点的最常见方法之一是使用传统的 for循环 。在JavaScript中,我们还有另一种现代的方法来遍历数组,即使用 forEach 方法。

以下是统计数组中所有项出现次数的方法:

  • **使用JavaScript **forEach()方法
  • **使用 **reduce()方法
  • **使用 **filter()方法
  • **使用 **for…of循环方法

方法1:使用JavaScript forEach() 方法:

arr.forEach() 方法对数组的每个元素调用一次提供的函数。提供的函数可以对给定数组的元素执行任何类型的操作。

语法:

array.forEach(callback(element, index, arr), thisValue)
JavaScript

例子: 在这个例子中,我们将使用forEach()方法遍历数组的元素并统计数组中所有元素出现的次数,并将它们打印在控制台中。

JavaScript

let arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const counter = {};
 
arr.forEach(ele => {
    if (counter[ele]) {
        counter[ele] += 1;
    } else {
        counter[ele] = 1;
    }
});
 
console.log(counter)
JavaScript

输出

{
    '1': 1,
    '2': 2,
    '4': 1,
    '5': 2,
    '6': 1,
    '7': 1,
    '8': 1,
    geeks: 2,
    Javascript: 3,
    for: 3
}
JavaScript

方法2:使用reduce()方法:

JavaScript的 arr.reduce() 方法用于将数组减少为一个单一值,并对数组的每个值(从左到右)执行提供的函数,并将函数的返回值存储在累加器中。

语法:

array.reduce( 
    function(total, currentValue, currentIndex, arr), 
    initialValue 
)
JavaScript

示例: 在这个示例中,我们将使用reduce()方法迭代数组的元素,并统计数组中所有元素的发生次数,并将其打印在控制台上。

Javascript

const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
let count = arr.reduce(function (value, value2) {
    return (
        value[value2] ? ++value[value2] :(value[value2] = 1),
        value
    );
}, {});
 
console.log(count);
JavaScript

输出

{
    '1': 1,
    '2': 2,
    '4': 1,
    '5': 2,
    '6': 1,
    '7': 1,
    '8': 1,
    geeks: 2,
    Javascript: 3,
    for: 3
}
JavaScript

方法3: 使用filter()方法:

JavaScript Array filter() 方法用于从给定数组中创建一个新数组,该新数组只包含满足参数方法设置的条件的元素。

语法:

array.filter(callback(element, index, arr), thisValue)
JavaScript

例子: 在这个例子中,我们将使用数组的filter()方法来检查数组元素的出现次数,并将它们打印在控制台上。

JavaScript

const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const itemCounter = (value, index) => {
    return value.filter((x) => x == index).length;
};
 
console.log(itemCounter(arr, 'geeks'))
JavaScript

输出

2
JavaScript

方法4:使用for…of循环:

for…of循环遍历可迭代对象(例如Array、Map、Set、arguments对象等),通过自定义的迭代钩子调用语句来执行每个不同属性的值。

语法:

for ( variable of iterableObjectName) {
    ...
}
JavaScript

示例: 在此示例中,我们将使用for…of循环遍历数组的元素,计算数组中所有元素出现的次数,并将它们打印到控制台中。

Javascript

const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const count = {};
 
for (let ele of arr) {
    if (count[ele]) {
        count[ele] += 1;
    } else {
        count[ele] = 1;
    }
}
 
console.log(count);
JavaScript

输出

{
    '1': 1,
    '2': 2,
    '4': 1,
    '5': 2,
    '6': 1,
    '7': 1,
    '8': 1,
    geeks: 2,
    Javascript: 3,
    for: 3
}
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册