2015-12-15 49 views
2

我正在做關於ES2015一些閱讀,嘗試一些對箭頭語法的例子,當我遇到這樣的代碼來:多變量的Javascript地圖()回調

var odds = evens.map(v => v + 1);//I understand 
var nums = evens.map((v,i) => v + i);//I don't understand 

evens初始化爲[0,2,4,6]我得到[1,3,5,7]odds,我明白。

但是我不明白第二個表達式[0,3,6,9]的結果。基本上我不明白在第二個例子中將什麼值分配給變量i。任何人都可以對此有所瞭解嗎?

+0

請閱讀「Array#map」的文檔,特別是有關傳遞給回調的參數的部分。 – 2015-12-15 04:39:21

回答

4

Array.prototype.map功能,將調用傳遞給它三個參數的功能,如圖here

  • 當前元素
  • 當前元素的索引和
  • 實際陣列本身

所以,在你的情況下,v是當前元素,i是數組中元素的索引。

evens初始化爲[0, 2, 4, 6]時,它只是添加元素及其相應的索引並返回一個新數組。