我正在尝试使用JavaScript的
这应该与上面的调用等价:
为什么前两次调用的结果不同,后两次的结果相同?
reduce
函数对数组中的数字平方求和。但是,当有或没有给出初始值时,reduce
方法的结果不同。var x = [75, 70, 73, 78, 80, 69, 71, 72, 74, 77];
console.log(x.slice().reduce((ac,n) => ac+(n*n))); // 49179
console.log(x.slice().reduce((ac,n) => ac+(n*n),0)); // 54729
这应该与上面的调用等价:
console.log(x.slice().map(val => val*val).reduce((ac,n) => ac+n)); // 54729
然而,在这种情况下,两种方法返回相同的值。
console.log([1,2,3].slice().reduce((ac,z) => ac+(z*z))); // 14
console.log([1,2,3].slice().reduce((ac,z) => ac+(z*z), 0)); // 14
为什么前两次调用的结果不同,后两次的结果相同?