JS能力測評11:計數
阿新 • • 發佈:2019-01-05
思路:
遍歷的方法
function count(arr, item) {
var num=0;
for(var i=0;i<arr.length;i++)
{
if (arr[i]==item)
{
num+=1;
}
}
return num
}
forEach迴圈看起來更加簡潔,傳入一個匿名方法,接收一個引數e用於傳入陣列中的每一項,最後用一個三元條件運算子來判斷結果,true則執行count++,false則為0,最後返回count
function count(arr, item) { var count = 0; arr.forEach(function(e){ //e為arr中的每一個元素,與item相等則count+1 e == item ? count++ : 0; }); return count; }
收集大佬的思想
//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; }