我正在阅读有关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]时,它只是添加元素及其相应的索引并返回一个新数组。

    10-04 21:53