用forEach函数计算总和?

Mil*_* N. 0 javascript foreach

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

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

如何用forEach求和,或使用reduce方法?

Bla*_*ght 6

你应该放在forEach 循环total 之外

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

sum(1, 3);
Run Code Online (Sandbox Code Playgroud)


Nin*_*olz 5

您可能会更好地使用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());
Run Code Online (Sandbox Code Playgroud)