用forEach函数计算总和?

时间:2018-10-25 20:39:47

标签: javascript foreach

我想用JavaScript中的forEach数组函数计算和。 但是我没有想要的东西。

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

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

4 个答案:

答案 0 :(得分: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());

答案 1 :(得分:1)

您必须移动合计= 0;退出循环-每次迭代都会将其重置为0

function sum(...args) {
var total = 0;
args.forEach(arg => {
  total += arg;
  console.log(total); 
 });
}
sum(1, 3); // gives 1, 4 or in other words 0+1=1 then 1+3=4

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

您应将total 放在外部forEach循环:

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

sum(1, 3);