数组中的数字总和不起作用

时间:2018-08-07 05:22:19

标签: javascript

我有一些像这样的数组:

state = {
  array: [
    {
      id1,
      name1,
      price1
    },
    {
      id2,
      name2,
      price2
    },
    {
      id3,
      name3,
      price3
    }
  ]
}

然后我想对价格求和。

首先我尝试-

for (let key in arrayCopy) {
   totals += this.state.array[key].price;
}

第二次我尝试过=

for (let key in arrayCopy) {
   total[key] = this.state.array[key].price;
}
var totals = total.reduce((a,b) => a + b,0);

我将尝试用数字解释它。例如:

price1 = 1000
price2 = 2000
price3 = 5000

我试图通过汇总所有价格来获得总结果。

totals = price1 + price2 + price3
totals = 8000

但是我得到的结果是:

totals = 100020005000

有人可以指出我做错了吗?

2 个答案:

答案 0 :(得分:1)

这是因为您的pricestring而不是number,因此您需要先将其转换为数字。

var totals = this.state.array.reduce((a,b)=>a+Number(b), 0);

答案 1 :(得分:0)

使用reduce Array原型方法就足够了

 let items = [{id:1,name:'s', price:100},{id:2,name:'sew',price:50},{ id:3, name:'se',price:10}];

 let sum = items.reduce((a, b) => +a + +b.price, 0);

 console.log(sum);