aja*_*mar 0 javascript arrays reduce
我用阵列缩减功能测试了几个场景.
[1,2].reduce(function(initial , val){
return initial+val;
} ,1)
// returns 4 as expected
[1,2].reduce(function(initial , val){
return initial+val;
})
// returns 3
Run Code Online (Sandbox Code Playgroud)
但明确传递undefined为初始值
[1,2].reduce(function(initial , val){
return initial+val;
}, undefined)
// returns NaN.
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很不寻常.
解释在这里:
注意:如果
initialValue未提供,reduce将从索引1开始执行回调函数,跳过第一个索引.如果initialValue提供,它将从索引0开始.
所以你的第二个案例与此类似:
[2].reduce(function(initial, val){
return initial+val;
}, 1)
Run Code Online (Sandbox Code Playgroud)