//首先想到的第一种
function count(arr, item) {
var sum = 0;
for(var i = 0; i<arr.length;i++){
if(arr[i] == item){
sum++;
}
}
return sum;
}
//其次想到的第二种(这种方法是考虑到其他一些应用)
function count(arr, item) {
var newArr = [];
for(var i = 0; i<arr.length;i++){
if(arr[i] == item){
newArr.push(arr[i]);
}
}
return newArr.length;
} // arr[6] = [1, 2, 4, 4, 3, 4, 3] // item = 4 // arr[2] = 4,arr[3] = 4,arr[5] = 4 // 故有三个,sum = 3 // 首先要理解题目的意思:有几个arr[i] = item
//filter()-->利用指定的函数确定是否在返回的数组中包含某一项
function count(arr, item) {
var count = arr.filter(function(a) {
return a === item; //返回true的项组成的数组
});
return count.length;
}
//map()-->对数组中的每一项进行给定函数,
//返回每次函数条用的结果组成的数组;
function count(arr, item) {
var count = 0;
arr.map(function(a) {
if(a === item) {
count++;
}
});
return count;
}
//for循环
function count(arr, item) {
var count = 0;
for(var i=0; i<arr.length; i++) {
if(arr[i] === item) {
count++;
}
}
return count;
}
//reduce()-->从数组的第一项开始,逐个遍历到最后;
function count(arr, item) {
var count = arr.reduce(function(prev, curr) {
return curr === item ? prev+1 : prev;
}, 0);
return count;
}
//forEach()-->对数组中的每一项运行传入的函数
function count(arr, item) {
var count = 0;
arr.forEach(function(a) {
a === item ? count++ : 0;
});
return count;
}
function count(arr, item) { var count = 0; arr.forEach(function(e){ //e为arr中的每一个元素,与item相等则count+1 e == item ? count++ : 0; }); return count; }