【JS实战】计数

计数

在这里插入图片描述

方法一:普通的for循环

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

在这里插入图片描述

方法二:forEach

function count(arr, item) {
    
    
  let frequency = 0
  arr.forEach(function(currentValue) {
    
    
    if(currentValue === item) {
    
    
      frequency++
    }
  })
  return frequency
}

在这里插入图片描述

方法三:filter

function count(arr, item) {
    
    
  let frequency = arr.filter(function(currentValue) {
    
    
    return currentValue === item
  })
  return frequency.length
}

在这里插入图片描述

方法四:map(效率高于filter)

function count(arr, item) {
    
    
  let frequency = 0
  arr.map(function(currentValue) {
    
    
    if (currentValue === item) {
    
    
      frequency++
    }
  })
  return frequency
}

在这里插入图片描述
map函数和filter有点像,但是map是对数组中的所有元素进行复核函数条件的处理,最终得到的是一个新数组,元素个数不变。

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

方法五:reduce

function count(arr, item) {
    
    
  let frequency = arr.reduce(function(total,currentValue) {
    
    
    return currentValue === item ? total + 1 : total
  },0) 
  return frequency
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43352901/article/details/108394103