我想用JavaScript中的forEach数组函数计算和。 但是我没有想要的东西。
function sum(...args) {
args.forEach(arg => {
var total = 0;
total += arg;
console.log(total);
});
}
sum(1, 3);
如何用forEach求和,或使用reduce方法?
答案 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);