题目描述
统计数组 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