JS語法之 map 方法

2021-09-09 05:34:16 字數 926 閱讀 8627

mdn web docs上面說:

map() 方法建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果。

並舉了個例子:

var array1 = [1,4,9,16];

const map1 = array1.map(x => x *2);

console.log(map1);

列印結果為:

> array [2,8,18,32]
而我這樣寫時:

var array1 = [1, 4, 9, 16];

const map1 = array1.map(x =>

});console.log(map1);

列印結果為:

> array [undefined, 8, undefined, undefined]
為什麼會出現三個undefined呢?而不是我預期的[1,8,9,16]。

這樣寫只是增加了乙個條件,即x的值為4時才乘以2,之所以會出現undefined,是因為map()方法建立了乙個新陣列,但新陣列並不是在遍歷完array1後才被賦值的,而是每遍歷一次就得到乙個值。所以,下面這樣修改後就正確了:

var array1 = [1, 4, 9, 16];

const map1 = array1.map(x =>

return x;

});

這裡注意箭頭函式有兩種格式:

1.只包含乙個表示式,這時花括號和return都省略了。

2.包含多條語句,這時花括號和return都不能省略。

大家可以參考:es6標準新增了一種新的函式

js 陣列 map方法

map 這裡的map不是 地圖 的意思,而是指 對映 map 基本用法跟foreach方法類似 array.map callback,thisobject callback的引數也類似 map function value,index,array map方法的作用不難理解,對映 嘛,也就是原陣列被 ...

python語法之map 函式

將乙個function作用於sequence中每個元素身上,最後返回這個被function作用後的list。在python3中map被封裝成了乙個類,功能依舊是將function作用於要被遍歷的序列,但是最後返回的結果就是乙個物件了。通過 舉乙個將int轉換為float的例子 if name mai...

js之map對映forEach迭代

函式定義 map u callbackfn value t,index number,array t u,thisarg?any u 乙個簡單的map對映示例 use strict var list 1 2,3 4,5 var newlist list.map value value 2 conso...