
map()
方法建立一個新數組,其結果是該數組中的每個元素都調用一個提供的函數後傳回的結果。
var array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
文法
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array }[,
thisArg])
參數
callback
生成新數組元素的函數,使用三個參數:
currentValuecallback
數組中正在處理的目前元素。
index
可選
callback
數組中正在處理的目前元素的索引。
array
可選
callbackmap
方法被調用的數組。
thisArg
可選執行
callback
函數時使用的
this
值。
傳回值
一個新數組,每個元素都是回調函數的結果。
描述
map
方法會給原數組中的每個元素都按順序調用一次
callback
函數。
callback
每次執行後的傳回值(包括 undefined)組合起來形成一個新數組。
callback
函數隻會在有值的索引上被調用;那些從來沒被賦過值或者使用
delete
删除的索引則不會被調用。
callback
函數會被自動傳入三個參數:數組元素,元素索引,原數組本身。
如果
thisArg
參數有值,則每次
callback
函數被調用的時候,
this
都會指向
thisArg
參數上的這個對象。如果省略了
thisArg 參數,或者指派為 null
或
undefined
,則 this 指向全局對象 。
map
不修改調用它的原數組本身(當然可以在
callback
執行時改變原數組)。
使用 map 方法處理數組時,數組元素的範圍是在 callback 方法第一次調用之前就已經确定了。在 map 方法執行的過程中:原數組中新增加的元素将不會被 callback 通路到;若已經存在的元素被改變或删除了,則它們的傳遞到 callback 的值是 map 方法周遊到它們的那一時刻的值;而被删除的元素将不會被通路到。