JavaScript forEach()

admin發表於2018-09-11

forEach方法功能幾乎和map方法一模一樣。

關於map方法可以參閱JavaScript map()方法一章節。

兩者區別如下:

(1).forEach方法是ES3新增,map方法是ES5新增。

(2).forEach方法返回值為undefined,map方法返回值是一個陣列。

更多內容可以參閱JavaScript Array 陣列一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
array.forEach(callbackfn[, thisArg])

引數解析:

(1).callbackfn:必需,回撥函式,此函式會針對陣列的每一個元素執行一次。

          回撥函式可以有三個引數:

            第一個引數是當前陣列元素值。

            第二個引數是當前陣列元素的索引。

            第三個引數就是陣列物件本身。

(2).thisArg:可選,規定回撥函式中this所指向的物件,省略,this指向window物件。

瀏覽器相容:

(1).IE瀏覽器支援此方法。

(2).edge瀏覽器支援此方法。

(3).谷歌瀏覽器支援此方法。

(4).火狐瀏覽器支援此方法。

(5).opera瀏覽器支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let func=function(value,index){
  console.log(index+":"+value);
}
let arr=["螞蟻部落","softwhy.com","antzone","青島市南區"];
arr.forEach(func);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/11/095404khtwmhhshw7885kb.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到forEach方法會對陣列的每一個元素執行一次回撥函式。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let obj={
  num:2
}
let func=function(value,index){
  console.log(index*obj.num + ":"+value);
}
let arr=["螞蟻部落","softwhy.com","antzone","青島市南區"];
arr.forEach(func,obj);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/11/095443atrow5ufe9zazar3.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

為回撥函式傳遞了第二個引數,它可以規定回撥函式this所指向的物件。

預設情況下回撥函式的this指向window物件,現在它指向obj物件。

相關文章