具有过滤和减少的数组之和

时间:2018-01-12 13:11:14

标签: angular

我试图在我的列表中获取所有产品的总数。

this.totalValue = this.items.filter((item) => item.qtyvalue)
                            .map((item) => item.qtyvalue)
                            .reduce((sum, current) => sum + current)

这几乎正常,因为它给了我650.00110.0030175.0050.00

但我希望将数字加在一起,我该怎么做?

亲切的问候

2 个答案:

答案 0 :(得分:2)

看起来你的数量是字符串而不是数字。你可以尝试下面的代码片段

this.totalValue = this.items.filter((item) =>item.qtyvalue)
                            .map((item) => +item.qtyvalue)
                            .reduce((sum, current) => sum + current);
console.log(this.totalValue);

<强> WORKING DEMO

答案 1 :(得分:0)

我认为,您的qtyvalue - s是字符串,而不是数字,因此您只需将它们连接为字符串。在map函数中使用parseFloat

this.totalValue = this.items.filter(item => item.qtyvalue)
                            .map(item => parseFloat(item.qtyvalue))
                            .reduce((sum, current) => sum + current)