SOURCE

console 命令行工具 X clear

                    
>
console
//method_1:普通的for循环

function count(arr, item) {
    let reSCount = 0
    for(let i = 0;i<=arr.length;i++){
        if(arr[i] === item){
            reSCount++
        }
    }
    return reSCount
}

//method_2:forEach

function count(arr, item) {
    let resCount=0;
    arr.forEach(v => {
        if(v==item){
            resCount++;
        }
    });
    return resCount;
}

//method_3:filter

function count(arr, item) {
   let res = arr.filter(v => {
       return v === item
    });
    return res.length;
}

//method_4:map(效率高于filter)

function count(arr, item) {
    let resCount = 0
   arr.map(v => {
       if(v === item){
           resCount++
       }
    });
    return resCount;
}


//map函数和filter有点像,但是map是对数组中的所有元素进行复核函数条件的处理,最终得到的是一个新数组,元素个数不变

//filter函数虽然也是返回一个新数组,但是元素的个数等于复核函数条件的元素总和。

//method_5:reduce

 function count(arr, item) {
     let res = arr.reduce( (init,curr)=> {
       //如果当前置等于item,该函数值加一
       return curr === item ? init+1:init;
      },0)
      return res;
  }



<!--  -->