Javascript 循环数组中的对象,取整数值的总和
我尝试在数组中循环对象,使用键“price”添加所有值Javascript 循环数组中的对象,取整数值的总和,javascript,arrays,loops,for-loop,parsefloat,Javascript,Arrays,Loops,For Loop,Parsefloat,我尝试在数组中循环对象,使用键“price”添加所有值 var basket = [ { price: "25.00", id: "Hat" }, { price: "50.00", id: "Jacket" } ] /*objects within array. purpose = able to use a for loop using .length as follows*/ function te
var basket = [
{
price: "25.00",
id: "Hat"
}, {
price: "50.00",
id: "Jacket"
}
]
/*objects within array. purpose = able to use a for loop using .length as follows*/
function test() {
for(var i = 0; i < basket.length; i++){
totalPrice = 0;
alert(itemPrice);
itemNum = basket[i];
itemPrice = parseFloat(itemNum.price);
totalPrice += itemPrice;
}
alert(totalPrice);
}
var篮=[
{
价格:“25.00”,
id:“帽子”
}, {
价格:“50.00”,
id:“夹克”
}
]
/*数组中的对象。用途=能够使用for循环,使用.length,如下所示*/
功能测试(){
对于(变量i=0;i
我的
itemPrice
警报显示循环在两个对象中运行,先闪烁25,然后闪烁50。为什么我的totalPrice
变量只存储第二个价格50?运算符+=
应与totalPrice=totalPrice+itemPrice
相同?任何解释以及修复将非常感谢,试图获得良好的理解 第一次进入循环时,将totalPrice
设置为0。然后你加上第一个项目的价格,所以总价格是25。然后第二次进入循环,再次将totalPrice
设置为0,0+50=50
您应该在循环之前初始化totalPrice。使用reduce:
basket.reduce( function( previousValue, currentValue ){
return previousValue += parseInt(currentValue.price)
}, 0);
例如:
因为您在循环中将totalPrice设置为0。您应该在循环之前执行此操作。或者您可以使用:
var totalPrice=basket.reduce(函数(pr,cur){return pr+parseFloat(cur.price);},0)代码>(演示:)