【发布时间】:2015-10-01 06:23:10
【问题描述】:
在研究reduce方法时我不太清楚为什么传入的回调需要第三个和第四个参数,索引和数组。在来自 MDN 的示例中:
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
我研究过的数组reduce方法或下划线reduce函数的许多其他用途只使用callback的前两个参数:previousValue(有时被视为accumulator)和currentValue (又名elem,当前索引的值)。
为什么reduce有时用callback写四个参数,而有时只用previousValue和currentValue写?
在什么情况下需要index 和array 参数?
如果reduce的应用程序需要第三个或第四个参数,是否应该在reduce的函数定义中始终给出所有四个参数?
【问题讨论】:
-
不,没有必要总是提供所有 4 个参数,您可以只使用前 2 个参数,例如
function(previousValue, currentValue){}...
标签: javascript callback reduce optional-parameters