在Javascript中,对一个只包含一个元素的数组调用Array.reduce方法。
- 论坛
- 在Javascript中,对一个只包含一个元素的数组调用Array.reduce方法。
7 浏览
在Javascript中,对一个只包含一个元素的数组调用Array.reduce方法。
对空数组调用reduce会抛出TypeError异常,这是可以理解的,并有助于捕获错误。但是当我对只有一个项的数组调用它时,其行为让我感到困惑:
var arr = ["a"]; arr.reduce(function(a,b){ return [a,b] }); //返回"a"
我知道reduce不适用于这样的数组,但是仅返回元素而不调用回调函数或抛出错误至少是奇怪的。
此外,MDN文档还指出回调函数是“在数组中的每个值上执行的函数,接受四个参数:”。
有人能解释这种行为背后的原因吗?