js中的5個迭代方法
阿新 • • 發佈:2018-12-13
1.every()方法:
例項:
var a=[1,2,3,4,5,4,3,2,1];
var result=a.every(function(item,index,array){
return (item>2)
}
console.log(result)
執行結果:false
2.some()方法:
例項:
var a=[1,2,3,4,5,4,3,2,1];
var result=a.some(function(item,index,array){
return (item>2)
}
console.log(result)
執行結果:true
解釋: (1)對於every()方法和some()方法,它們都用於查詢陣列中的項是否滿足某個條件。 (2)但是,對於every()方法而言,傳入函式的每一項都返回true,這個方法才會返回true。 (3)對於some()方法而言,只要有部分符合條件,就會返回true.
3.filter()方法:
例項:
var a=[1,2,3,4,5,4,3,2,1];
var result=a.filter(function(item,index,array){
return (item>2);
});
console.log(result);
執行結果:
[ 3, 4, 5, 4, 3 ];
解釋:該方法用於查詢符合某些條件的所有陣列項,返回的是一個數組。
4.map()方法:
例項:
var a=[1,2,3,4,5,4,3,2,1]; var result=a.map(function(item,index,array){ return item+2; }); console.log(result); 執行結果: [ 3, 4, 5, 6, 7, 6, 5, 4, 3 ]
解釋:map()方法也返回的是一個數組,是原始陣列的每一項都基於傳入函式進行了再次處理後的結果(即返回後的陣列,每一項都加了2)。
5.forEach()方法:
var a=[1,2,3,4,5,4,3,2,1];
var result=a.forEach(function(item,index,array){
console.log(item+2);
}
console.log( result);
執行結果為:
3
4
5
6
7
6
5
4
3
undefined
解釋:forEach()方法沒有返回值,它的用法本質上與使用for迴圈迭代陣列是一樣的。
彙總:
上面提及的所有方法都不會改變原陣列,且每一個方法的傳入函式都對應有三個引數:陣列項的值,該項在陣列中的位置,陣列物件本身。
備註:參考資料(JavaScript高階程式設計第三版)