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).safari 瀏覽器支援此方法。

程式碼例項:

[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 物件。

相關文章