Angular 带滤波器和reduce的数组和

Angular 带滤波器和reduce的数组和,angular,Angular,我正试图得到我的清单上所有产品的总数 this.totalValue = this.items.filter((item) => item.qtyvalue) .map((item) => item.qtyvalue) .reduce((sum, current) => sum + current) 这几乎是工作,因为它给我650.00110.0030175.005

我正试图得到我的清单上所有产品的总数

this.totalValue = this.items.filter((item) => item.qtyvalue)
                            .map((item) => item.qtyvalue)
                            .reduce((sum, current) => sum + current)
这几乎是工作,因为它给我650.00110.0030175.0050.00

但是我想把这些数字加在一起,我该怎么做呢


我想,你的
qtyvalue
-s是字符串,而不是数字,所以你只需要把它们连接成字符串。在
map
函数中,使用
parseFloat

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

我认为,您的
qtyvalue
-s是字符串,而不是数字,所以您可以将它们作为字符串连接起来。在
map
函数中,使用
parseFloat

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

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

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

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

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

item.qtyvalue前面的小+符号使整个过程正常运行。。。我想我什么都试过了。谢谢,item.qtyvalue之前的小+符号使整个过程正常运行。。。我想我什么都试过了。感谢manTry this
this.totalValue=this.items.reduce((sum,item)=>sum++item.qtyvalue,0)
尝试此
this.totalValue=this.items.reduce((sum,item)=>sum++item.qtyvalue,0)