JavaScript 统计数组项的频率

JavaScript 统计数组项的频率

在本文中,我们将统计JavaScript数组中数组项的频率。

在使用数组时,有时候我们需要统计数组项的频率。JavaScript提供了一些方法来统计数组中某个项的出现次数,下面我们将对其中的一些方法进行解释:

  • 使用for循环
  • 使用filter()方法
  • 使用reduce()方法
  • 使用for-of循环

方法1: 使用for循环

JavaScript的for循环用于迭代数组的元素,并且用于计算数组中元素的出现次数。

语法:

for (statement 1 ; statement 2 ; statement 3){
    // code here...
}

示例: 在这个示例中,for循环遍历元素数组,并在控制台打印出所有元素的出现次数。

JavaScript

let arr = [1, 2, 3, 2, 3, 4, 5, 
           5, 6, 1, 1, 4, 5, 7, 8, 8];
     
const count = {};
 
for (let i = 0; i < arr.length; i++) {
    let ele = arr[i];
    if (count[ele]) {
        count[ele] += 1;
    } else {
        count[ele] = 1;
    }
}
console.log(count);

时间复杂度: O(n)。

空间复杂度: O(n),因为创建了一个 count 数组。

输出:

{ '1': 3, '2': 2, '3': 2, '4': 2, 
'5': 3, '6': 1, '7': 1, '8': 2 }

方法2: 使用filter()方法

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

语法:

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

示例: 在本示例中,使用filter()方法来计算数组元素的频率。我们在控制台中打印出数组中“1”的频率。

JavaScript

let arr = [1, 2, 3, 2, 3, 4, 5, 
           5, 6, 1, 1, 4, 5, 7, 8, 8];
 
function count(arr, element) {
    return arr.filter(
        (ele) => ele == element).length;
};
 
console.log(count(arr, 1))

输出:

3

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

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

语法:

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

示例:

在这个示例中,使用reduce()方法来计算数组元素的频率。我们在控制台中打印出数组中“1”的频率。

Javascript

const arr = [1, 2, 3, 2, 3, 4, 5, 
             5, 6, 1, 1, 4, 5, 7, 8, 8];
 
function count(arr, element) {
    return arr.reduce((ele, arrayEle) =>
        (arrayEle == element ? ele + 1 : ele), 0);
};
 
console.log(count(arr, 1));

输出:

3

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

for…of循环遍历可迭代对象(如数组,映射,集合,参数对象等),使用自定义迭代钩子调用语句来执行每个不同属性的值。

语法:

for ( variable of iterableObjectName) {
   ...
}

示例: 在这个例子中,for循环遍历元素数组并在控制台上打印出所有元素的出现次数。

Javascript

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

输出:

{ '1': 3, '2': 2, '3': 2, '4': 2, '5': 3, '6': 1, '7': 1, '8': 2 }

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程