8. JS编程之统计指定元素在数组中出现的次数

时间:2025-01-20 19:54:40

题目描述
统计数组 arr 中值等于 item 的元素出现的次数。
示例:

//输入
[1, 2, 4, 4, 3, 4, 3], 4
//输出
3
  • 1
  • 2
  • 3
  • 4

方法一
创建一个变量count统计元素数量,用forEach()遍历数组,用if语句判断每一个数组元素与item是否相等,相等则count+1。

function count(arr, item) {
    var count = 0;
    arr.forEach((elem)=>{
        if(item === elem){
            count++;
        }
    });
    return count;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

方法二
将方法一中的if判断换为三元条件运算符进行判断,符合条件count+1。

function count(arr, item) {
    var count = 0;
    arr.forEach((e)=> item === e ? count++:0);
    return count;
}
  • 1
  • 2
  • 3
  • 4
  • 5

方法三
利用reduce()方法,用prev参数统计元素出现的次数,结合三元条件运算符来判断计数。

function count(arr, item) {
    return arr.reduce((prev,curr)=> curr === item ? prev+1 : prev, 0);
}
  • 1
  • 2
  • 3

方法四
利用filter()方法,通过判断数组的元素与item是否相等,返回相等的元素(返回的是相等的元素组成的数组),返回的数组的长度就是元素在数组中出现的次数。
(function(currentValue,index,arr), thisValue)

function count(arr, item) {
    return arr.filter((e)=>e===item).length;
}
  • 1
  • 2
  • 3