js统计数组元素出现的次数 简单易理解

JavaScript014

js统计数组元素出现的次数 简单易理解,第1张

你是求数组中某个元素出现的次数么?我写的只是某个元素出现次数。

function times(arr){

var m=0,times=0//m是数组中的元素,times用来统计出现的次数

// for循环遍历arr数组

for(var i=0i<arr.lengthi++){

if(arr[i]==m){

times++//数组中有相同值就加1

}

}

return times

console.log(times)//这是打印出的出现的次数

}

times([0, 1, 2, 0, 1, 2])

<script>

var arr = [1, 5, 84, 4894, 44, 45, 454, 444, 515, 3, 4, 84, 4894, 44, 45, 454, 444, 515, 3, 4, 6, 6, 6, 6, 4]

for (var i = 0i <arr.lengthi++) {

if (arr.indexOf(arr[i]) == i) {

var num = 1

for (var j = i + 1j <arr.lengthj++) {

if (arr[i] === arr[j]) {

num++

}

}

console.log(arr[i] + "出现的次数是:" + num)

}

}

</script>

方法一 、利用对象

创建个空对象,遍历目标数组,并根据数组元素是否存在与对象中进行对象属性的添加和次数增加

遍历完数组得出结果对象后,遍历对象找出最多元素和次数

方法二、改良版

去除对象遍历,把比较放到数组遍历种

方法三、利用数组的reduce方法

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

reduce方法接受两个参数,第一个是函数,第二个是初始值

函数内接受四个参数:计算后的结果或者初始值,当前值,当前下标,数组本身