angular - 用 forEach 对我的集合中的元素求和
问题描述
当我试图从我的集合中总结一些对象或元素时,我遇到了一个小问题,但这样就好像获得的数据被连接为字符串类型的字符串,结果是:
Total: 05500000005
预期的结果是:
Total: 15
这是我forEach
浏览我的收藏元素的代码:
let total = 0;
data.forEach(element => {
console.log("Element: ", element.cost_product);
total += element.cost_product;
});
console.log("Total: ", total)
解决方案
这是你要找的吗?
const total = [1, 2, 3].reduce((a, b) => a + b, 0);
console.log(total); // 6
在您的情况下,这样做更方便。
const total = [{cost_product: 1}, {cost_product: 2}, {cost_product: 5}].reduce(function (acc, obj) { return acc + obj.cost_product; }, 0);
console.log(total);
ES6
const total = [{ cost_product: 1 }, { cost_product: 2 }, { cost_product: 5 }].reduce((
acc,
obj,
) => acc + obj.cost_product,
0);
console.log(total);
如果 cost_product 是字符串,你可以试试这个
const total = [{ cost_product: "1" }, { cost_product: "2" }, { cost_product: "5" }].reduce((
acc,
obj,
) => acc + Number(obj.cost_product),
0);
console.log(total);
有条件
const total = [{ cost_product: 1 }, { cost_product: 2 }, { cost_product: 5 }].reduce((
acc,
obj,
) => {
if (obj.cost_product >= 1 && obj.cost_product <= 4) {
return acc + Number(obj.cost_product);
}
return acc;
},
0);
console.log(total);
推荐阅读
- android - 自动链接是否完全取代手动步骤(反应原生)?
- sql - 我的 regexp_replace 不适用于特殊字符
- sql - 创建连接 SQL 服务器的 Flutter Web Server
- javascript - grep() 和 indexOf() 函数在字符串数组中不起作用
- css - 如何创建自定义虚线
- python - 在 Torchaudio=0.7.0 中,torchaudio.functional.istft 在哪里?
- mongodb - Mongodb在聚合查询中填充字段
- flutter - 关于 Provider 的深拷贝
- pdf - 从标记的 pdf 操作标记树
- metrics - 在 Datadog 查询中使用度量名称进行字符串插值