JavaScript的阵列地图原型有点关闭吗?

cod*_*rer 1 javascript node.js

我正在玩JavaScript的数组原型图,我不明白为什么我得到以下值:

console.log(
    [1,2,2,5,6].map(function(a,b){ 
        return a+b; 
    })
); /*This returns [ 1, 3, 4, 8, 10 ]*/
Run Code Online (Sandbox Code Playgroud)

上述代码不应该返回[1,3,4,7,11]吗?

这是另一个代码片段,它显示数组中的元素是按顺序添加的,并且至少我相信是正确的.

console.log(
    [1,2,3,4,5,6].map(function(a,b){
        return a+b;
    })
); /*[ 1, 3, 5, 7, 9, 11 ]*/
Run Code Online (Sandbox Code Playgroud)

这只是一个奇怪的问题,更多的是为什么第一段代码似乎.

Chr*_*ies 5

这是因为map会将值作为第一个参数传递给您,将索引传递给第二个参数.所以,你要添加的是:1 + 0,2 + 1,2 + 2,5 + 3等.

您的a值是数组中的值:1,2,2,5,6

您的b值实际上是一个索引,而不是数组中的值:0,1,2,3,4