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:)我已经更新了我的答案,请查看它对你的帮助。