【JS实战】计数

tech2024-11-19  17

计数

方法一:普通的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 }

最新回复(0)