用forEach函数计算总和?

新手上路,请多包涵

我想用 JavaScript 中的 forEach 数组函数计算总和。但我没有得到我想要的。

 function sum(...args) {
  args.forEach(arg => {
    var total = 0;
    total += arg;
    console.log(total);
 });
}
sum(1, 3);

如何用forEach求总数,或者用reduce方法?

原文由 Milosh N. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 552
2 个回答

您最好使用 Array#reduce ,因为它是为这种目的而制作的。

它需要一个起始值,如果没有给出,它会使用数组的前两个元素并将数组逐字地减少为单个值。如果数组为空且未提供起始值,则会抛出错误。

 function sum(...args) {
    return args.reduce((total, arg) => total + arg, 0);
}

console.log(sum(1, 3));
console.log(sum(1));
console.log(sum());

原文由 Nina Scholz 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该将 total 放在 forEach 循环 之外

 function sum(...args) {
  var total = 0;
  args.forEach(arg => {
    total += arg;
  });
  console.log(total);
}

sum(1, 3);

原文由 BladeMight 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题