在JavaScript数组reduce中,累加器和值实际上意味着什么?

在JavaScript数组reduce中,累加器和值实际上意味着什么?,javascript,Javascript,我不明白这段代码如何返回10,以及它如何作为函数调用,因为它在我的浏览器中没有显示任何内容。此代码运行时的第一个累加器是什么,如果是1,为什么不是0,因为数组的第一个值是0 [0, 1, 2, 3, 4].reduce( function ( accumulator currentValue ) { return accumulator + currentValue; } ); 累加器是该功能的净结果。它包含上次调用的初始值或返回值 当前值就是正在处理的元素 在您当前的示例中,累加器是0,因

我不明白这段代码如何返回10,以及它如何作为函数调用,因为它在我的浏览器中没有显示任何内容。此代码运行时的第一个累加器是什么,如果是1,为什么不是0,因为数组的第一个值是0

[0, 1, 2, 3, 4].reduce(
function (
accumulator
currentValue

) {
return accumulator + currentValue;
}
);

累加器是该功能的净结果。它包含上次调用的初始值或返回值

当前值就是正在处理的元素

在您当前的示例中,累加器是
0
,因为您没有提供初始值,
。reduce
将使用第一项

let run=1;
让结果=[0,1,2,3,4,5].reduce(函数(acc,val){
log('run',run++,'acc',acc',val',val);
返回acc+val;
});
console.log('result',result)
reduce
通过重复应用以下功能来“折叠”阵列:

[0, 1, 2, 3, 4].reduce(f, start)
// is
f(f(f(f(f(start, 0), 1), 2), 3), 4)

第一个参数称为“累加器”,因为您可以累加最终将返回的值。

您是否阅读了文档@但是它太长了。在这里询问并让某人对其进行总结要容易得多。您应该始终将初始值作为第二个参数传递给
reduce