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

Javascript 数组中的数字总和不起作用,javascript,Javascript,我有一些类似这样的数组: state = { array: [ { id1, name1, price1 }, { id2, name2, price2 }, { id3, name3, price3 } ] } 然后我试着计算价格 首先我试过- for (let key in arrayCopy) { totals += t

我有一些类似这样的数组:

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

有人能指出我做错了什么吗?

使用reduce-Array-prototype方法就足够了

 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);

这是因为您的
价格
字符串
而不是
数字
,您需要先将其转换为数字

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

您有
price1
price2
。您正在访问
this.state.array[key].price?你想达到什么目的?@torazaburo sense:)我已经更新了我的答案,请查看它对你的帮助。