1. 程式人生 > >JS中的forEach、$.each、map的區別

JS中的forEach、$.each、map的區別

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]