在Javascript中,对一个只包含一个元素的数组调用Array.reduce方法。

7 浏览
0 Comments

在Javascript中,对一个只包含一个元素的数组调用Array.reduce方法。

对空数组调用reduce会抛出TypeError异常,这是可以理解的,并有助于捕获错误。但是当我对只有一个项的数组调用它时,其行为让我感到困惑:

var arr = ["a"];
arr.reduce(function(a,b){
   return [a,b]
}); //返回"a"

我知道reduce不适用于这样的数组,但是仅返回元素而不调用回调函数或抛出错误至少是奇怪的。

此外,MDN文档还指出回调函数是“在数组中的每个值上执行的函数,接受四个参数:”。

有人能解释这种行为背后的原因吗?

0