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...