如何解决为什么将调节器设置为-10?
我想问你,为什么在这种情况下将累加器设置为-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
的{{1}}。然后下一个调用是-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((accumulator,0);
console.log(x);
会导致运行时错误:
reduce
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。