JS中的forEach、$.each、map的區別
阿新 • • 發佈:2019-01-08
1.forEach是ES5中遍歷陣列中的一個重要的方法:
forEach()語法:
arr.forEach(function(value,index,arr){})
注意:
forEach()中的回撥函式支援三個引數,第1個是value;第2個是index,第3個是陣列本身
例如:
var arr =[1,2,3,4,5,6];
arr.forEach(function(value,index,arr){
console.log(value,index,arr);
})
//1 0 [1, 2, 3, 4, 5, 6]
//2 1 [1, 2, 3, 4, 5, 6]
//3 2 [1, 2, 3, 4, 5, 6]
//4 3 [1, 2, 3, 4, 5, 6]
//5 4 [1, 2, 3, 4, 5, 6]
//6 5 [1, 2, 3, 4, 5, 6]
2.對比jQuery中的$.each方法:
$("img").each(function(index,value,arr){
this.src = "test" + i + ".jpg";
});
注意:
對比forEach()中的回撥函式,會發現,第1個和第2個引數正好是相反的,大家要注意了,不要記錯了。後面類似的方法,例如$.map也是如此。
3.這裡的map不是“地圖”的意思,而是指“對映”。[].map(); 基本用法跟forEach方法類似:
var arr =[1,2,3,4,5,6];
arr.map(function(value,index,arr){
console.log(value,index,arr);
})
//1 0 [1, 2, 3, 4, 5, 6]
//2 1 [1, 2, 3, 4, 5, 6]
//3 2 [1, 2, 3, 4, 5, 6]
//4 3 [1, 2, 3, 4, 5, 6]
//5 4 [1, 2, 3, 4, 5, 6]
//6 5 [1, 2, 3, 4, 5, 6]