Javascript 为什么accomulator设置为-10?

Javascript 为什么accomulator设置为-10?,javascript,reduce,Javascript,Reduce,我想问你,为什么在这种情况下累加器设置为-10。我想,累加器的默认值设置为0 const number = [5, 10, 13, 18]; var x = number.reduce((accumulator, currentValue) => { return accumulator - currentValue}); console.log(x); 输出应为-46,但为-36。如果不为累加器提供初始值,则对回调函数的第一个调用将接收第一个条目作为第一个参数,第二个条目作为第二个参

我想问你,为什么在这种情况下累加器设置为-10。我想,累加器的默认值设置为0

const number = [5, 10, 13, 18];
var x = number.reduce((accumulator, currentValue) => { return accumulator - currentValue});

console.log(x);

输出应为-46,但为-36。

如果不为累加器提供初始值,则对回调函数的第一个调用将接收第一个条目作为第一个参数,第二个条目作为第二个参数。因此,对您的第一个调用是
5,10
,并返回
5-10
,即
-5
。然后下一个调用是
-5,13
,它是
-5-13
,它是
-18
,再次调用
-18,18
,它产生
-36

如果要从
0
开始,则需要明确指定:

var x = number.reduce((accumulator, currentValue) => { return accumulator - currentValue}, 0);
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^
实例:

const number=[5,10,13,18];
var x=number.reduce((累加器,currentValue)=>{返回累加器-currentValue},0);

控制台日志(x)当不为累加器提供初始值时,对回调函数的第一个调用将接收第一个条目作为第一个参数,第二个条目作为第二个参数。因此,对您的第一个调用是
5,10
,并返回
5-10
,即
-5
。然后下一个调用是
-5,13
,它是
-5-13
,它是
-18
,再次调用
-18,18
,它产生
-36

如果要从
0
开始,则需要明确指定:

var x = number.reduce((accumulator, currentValue) => { return accumulator - currentValue}, 0);
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^
实例:

const number=[5,10,13,18];
var x=number.reduce((累加器,currentValue)=>{返回累加器-currentValue},0);
控制台日志(x)这是我()喜欢简单循环而不是调用
reduce
的原因之一。除非您使用预定义的、经过测试的reducer函数进行函数编程,否则它将比需要的复杂得多。这就是我()喜欢简单循环而不是调用
reduce
的原因之一。除非您使用预定义的、经过测试的reducer函数进行函数编程,否则它将比需要的复杂得多。