我越来越不清楚了。代码在没有函数的情况下工作。我做错了什么?
var myArr = [ 1, 2, 3, 4, 5 ];
function getSums(arr) {
arr.reduce(a => a+1, 0);
}
document.write(getSums(myArr));
发布于 2016-07-03 17:43:09
三个问题:
reduce时,使用第一个两个参数(至少):累加器和当前条目。(它也有其他的论点,但前两个是最常使用的。)a + 1,它不是将数组中的值一起添加,而是将1添加到该条目的值中。reduce函数返回由getSums返回的值。所以:
var myArr = [ 1, 2, 3, 4, 5 ];
function getSums(arr) {
return arr.reduce((sum, a) => sum + a, 0);
//^^^^^^ ^^^^ ^ ^^^^^^
}
console.log(getSums(myArr));
或者您可以使用箭头语法定义getSums,如果使用简洁的函数体,则返回将是隐含的:
var myArr = [ 1, 2, 3, 4, 5 ];
let getSums = arr => arr.reduce((sum, a) => sum + a, 0);
console.log(getSums(myArr));
https://stackoverflow.com/questions/38172648
复制相似问题