天天看點

map文法擷取index_Array.prototype.map() 詳解

map文法擷取index_Array.prototype.map() 詳解

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 方法周遊到它們的那一時刻的值;而被删除的元素将不會被通路到。