数组计数
过滤数组实现计数
filter():利用指定的函数确定是否在返回的数组中包含某一项
function count(arr,item){
var count = arr.filter(function (i){
return i === item;
});
return count.length;
}
利用过滤及箭头函数
function count(arr,item){
return arr.filter((val,index) => item === val).length;
}
// 相当于
function count(arr,item){
let newArr = arr.filter(val => {
return val = item;
});
return newArr.length;
}
利用map重组数组实现计数
返回每次函数调用的结果组成的数组
function count(arr,item){
var count = 0;
arr.map(function (i){
if( i === 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 (pre,cur){
return cur === item ? pre + 1 : pre;
},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 (a){
(a ^ item) || ++count;
});
return count;
}
toString+match实现计数
function count(arr,item){
return arr.toString().match(new RegExp(item,"g")).length;
}
indexOf实现计数
function count(arr,item){
var index = arr.indexOf(item);
var num = 0;
while(index != -1){
num++;
index = arr.indexOf(item,index + 1)
}
return num
}
字符串计数
function count(str,item){
var reg = new RegExp("" + item + "","g");
var newStr = str.join("");
var strNum = newStr.match(reg);
return strNum.length;
}
function count(str,item){
return str.join(""),split(item).length - 1;
}