//首先想到的第一种 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; }