多个变量Javascript map()回调

时间:2015-12-15 02:12:45

标签: javascript arrays callback map-function

我正在阅读有关es2015的一些内容,在我遇到此代码时尝试了箭头语法的一些示例:

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分配了什么值。任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:5)

Array.prototype.map函数,将使用三个参数调用传递给它的函数,如here

所示
  • 当前元素
  • 当前元素的索引和
  • 实际数组本身

因此,在您的情况下,v是当前元素,i是数组中元素的索引。

使用evens初始化[0, 2, 4, 6]时,它只是添加带有相应索引的元素并返回一个新数组。