【发布时间】:2019-03-01 12:40:09
【问题描述】:
我一直使用 for 来计算表格中的任何总和,但我听说有一种正确的方法,那就是使用 reduce,我遵循了文档和一些使用简单数组的示例,但我使用的是数组对象,这是我的简单代码,因为我知道我缺少一些简单的东西:
let dataRevenus = [
{ id: 1, label: intl.get("REVENUES_FONCIERS"), value: 230000000 },
{ id: 2, label: intl.get("REVENUES_VALUERS_MOBILIERES"), value: 25000000 },
{ id: 3, label: intl.get("PENSIONS_RETRAITES"), value: 33008.0 }
];
let test = 0;
let sum = dataRevenus
? dataRevenus.reduce((acc, item) => {
console.log("here : " + parseFloat(item.value));
test = test + parseFloat(item.value);
return test;
})
: 0;
console.log(sum);
我在控制台中看到的是没有考虑第一项,这就是我得到的结果:
here : 25000000
here : 33008
25033008
似乎我正确计算了总和,但未计算第一项的值
任何帮助将不胜感激
【问题讨论】:
-
parseFloat(item.value)已经是数字了,不用解析了。 -
@VLAZ 你说得对,我不需要,但这不是问题。
-
我知道不是这样,但我仍然看到很多人都错了。真正的问题是链接问题 - 因为您没有提供初始值,
reduce会将第一个元素作为acc并因此它“跳过”它,因为您无法将其处理为item.另一个问题是您使用的不是acc,而是一个外部变量。 有效,但这不是reduce应该如何运行的。
标签: javascript arrays reduce