我正在阅读有关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
。谁能对此有所启示? 最佳答案
Array.prototype.map
函数,将使用三个参数调用传递给它的函数,如here所示
因此,在您的情况下,
v
是当前元素,而i
是该元素在数组中的索引。当使用
evens
初始化[0, 2, 4, 6]
时,它只是添加元素及其相应的索引并返回一个新数组。