JavaScript map()
map方法遍歷陣列中的每一個元素,且對其執行一次回撥函式。
返回一個陣列,新陣列元素與原陣列元素一一對應,值是原陣列元素執行回撥函式後的返回值。
更多內容可以參閱JavaScript Array 陣列一章節。
ES5新增此方法。
語法結構:
[JavaScript] 純文字檢視 複製程式碼array.map(callbackfn[, thisArg])
引數解析:
(1).callbackfn:必需,回撥函式,此函式會針對陣列的每一個元素執行一次。
回撥函式可以有三個引數:
第一個引數是當前陣列元素值。
第二個引數是當前陣列元素的索引。
第三個引數就是陣列物件本身。
(2).thisArg:可選,規定回撥函式中this所指向的物件,省略,this指向window物件。
瀏覽器相容:
(1).IE9+瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function getArea(radius){ let area=Math.PI*(radius*radius); return area.toFixed(0); } let rArray=[2,5,7,12]; let areas=rArray.map(getArea); console.log(areas);
程式碼執行效果截圖如下:
程式碼分析如下:
(1).map方法對陣列元素以索引從小到大的順序逐個對其執行回撥函式。
(2).回撥函式針對陣列元素執行完畢後會返回一個值。
(3).回撥函式返回的值作為新陣列的元素,順序與原陣列元素順序一一對應。
那麼上面的程式碼就是以原來陣列元素作為半徑,並求出對應的圓的面積(回撥函式返回值)。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj={ pi:Math.PI } function getArea(radius){ let area=this.pi*(radius*radius); return area.toFixed(0); } let rArray=[2,5,7,12]; let areas=rArray.map(getArea,obj); console.log(areas);
程式碼執行效果截圖如下:
為回撥函式傳遞了第二個引數,它可以規定回撥函式this所指向的物件。
預設情況下回撥函式的this指向window物件,現在它指向obj物件,程式碼的執行結果也證明了這一點。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function callback(ele,idnex,arr){ console.log(ele,idnex,arr); } let arr=[2,5,7,12]; console.log(arr.map(callback));
程式碼執行效果截圖如下:
上面程式碼目錄就是演示回撥函式的三個引數。
由於回撥函式沒有規定返回值,那麼它的預設返回值就是undefined,那麼新陣列的元素都是undefined。
相關文章
- JavaScript map()方法JavaScript
- JavaScript Array map() 方法JavaScript
- JavaScript Map與WeakMapJavaScript
- javascript 有map嗎JavaScript
- A Map to Success: Functors in JavascriptJavaScript
- JavaScript Source Map 詳解JavaScript
- javascript實現Map結構JavaScript
- JavaScript中 Map 物件詳解JavaScript物件
- javascript中的Map和SetJavaScript
- javascript模擬jQuery的map()方法程式碼例項mapJavaScriptjQuery
- JavaScript --- Map集合結構詳解JavaScript
- javascript生成map物件的函式JavaScript物件函式
- JavaScript — Map集合結構詳解JavaScript
- [Javascript] Object.groupBy & Map.groupByJavaScriptObject
- JavaScript 中 forEach、map、filter 詳細JavaScriptFilter
- JavaScript(1)高階函式filter、map、reduceJavaScript函式Filter
- javascript高階函式---filter---map---reduceJavaScript函式Filter
- JavaScript中Map和ForEach的區別JavaScript
- JavaScript中的new map()和new set()使用詳細(new map()和new set()的區別)JavaScript
- JavaScript 4/30: 陣列的 map, filter 和 reduce 用法JavaScript陣列Filter
- 帶你玩轉 JavaScript ES6 (六) – Map 對映JavaScript
- javascript陣列的map()函式用法簡單介紹JavaScript陣列函式
- ES6新特性:JavaScript中的Map和WeakMap物件JavaScript物件
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- Map
- Java 中的map - The Map Interface.Java
- 在JavaScript函數語言程式設計裡使用Map和Reduce方法JavaScript函數程式設計
- jQuery map()jQuery
- Google MapGo
- java mapJava
- Map集合
- c++ map和unordered_map比較C++
- java Map及Map.Entry詳解Java
- 一張圖看懂JavaScript中陣列的迭代方法:forEach、map、filter、reduce、every、someJavaScript陣列Filter
- java中Map根據Map的value取keyJava
- 詳解map、multimap、unordered_map、unordered_multimap
- Map get() 方法
- Map delete() 方法delete