用forEach函数计算总和? [复制]
Posted
技术标签:
【中文标题】用forEach函数计算总和? [复制]【英文标题】:Calculate sum with forEach function? [duplicate] 【发布时间】:2019-03-30 13:36:44 【问题描述】:我想用 javascript 中的 forEach 数组函数计算总和。 但我没有得到我想要的。
function sum(...args)
args.forEach(arg =>
var total = 0;
total += arg;
console.log(total);
);
sum(1, 3);
如何用 forEach 求总数,或者使用 reduce 方法?
【问题讨论】:
在 forEach 循环上方定义总计 了解 JS 作用域:css-tricks.com/javascript-scope-closures 【参考方案1】:您最好使用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());
【讨论】:
【参考方案2】:您应该将total
放在 forEach 循环之外:
function sum(...args)
var total = 0;
args.forEach(arg =>
total += arg;
);
console.log(total);
sum(1, 3);
【讨论】:
【参考方案3】:你必须移动total=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);
【讨论】:
为什么不使用 reduce 而不是用这些额外的东西来丑化你的代码? 如何才能删除第一步,只有结果?【参考方案4】:function sum(...args)
return args.reduce((total, amount) => total + amount);
console.log(sum(1,3));
【讨论】:
以上是关于用forEach函数计算总和? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用resample函数计算特定疾病按月花费总和pct_change函数计算特定疾病按月花费总和环比变化率并使用matplotlib可视化疾病按月花费总和环比变化率