【问题标题】:Why doesn't the reduce method work when calling an array within a function?为什么在函数中调用数组时reduce方法不起作用?
【发布时间】:2017-09-23 21:17:33
【问题描述】:

为什么 reduce 方法在以下代码中不起作用?当我从 sumAll 函数中删除它并直接减少数组时,它似乎有效([1,4].reduce ...),但由于 arr 是 sumAll 函数中的一个数组,我不明白为什么它不不行。

function sumAll(arr) {
    arr.reduce(function(acc, curr) {
        return acc += curr;
    });

}

sumAll([1, 4]);

【问题讨论】:

  • 您没有设置初始值。在关闭} 之后放置一个,0。你甚至没有返回结果..例如return arr.reduce
  • “不起作用”是什么意思?该函数不返回结果。
  • @Keith 初始值是可选的。如果未指定,则第一个元素用作累加器的初始值,reduce 从第二个元素开始。

标签: javascript for-loop


【解决方案1】:

该函数不返回任何值。开头需要一个return语句,比如:

function sumAll(arr) {
    return arr.reduce(function(acc, curr) {
        return acc + curr;
    });
}

【讨论】:

    【解决方案2】:

    返回结果

    function sumAll(arr) { 
        return arr.reduce(function(acc, curr) { 
              return acc += curr; 
         });  
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 2021-02-11
      • 1970-01-01
      相关资源
      最近更新 更多