我试图遍历数组中的对象,使用键'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 test() {
for(var i = 0; i < basket.length; i++){
totalPrice = 0;
alert(itemPrice);
itemNum = basket[i];
itemPrice = parseFloat(itemNum.price);
totalPrice += itemPrice;
}
alert(totalPrice);
}
我的itemPrice
警报显示循环遍历这两个对象,闪烁25然后是50.为什么我的totalPrice
变量只存储第二个价格50?运营商+=
应与totalPrice = totalPrice + itemPrice
相同?任何解释和修复都将非常感激,试图获得一个很好的理解!
答案 0 :(得分:2)
第一次进入循环时,将totalPrice
设置为0.然后添加第一个项目价格,使totalPrice为25.然后第二次进入循环,设置totalPrice
再次为0,0 + 50 = 50。
您应该在循环之前初始化totalPrice
。
答案 1 :(得分:0)
使用reduce:
basket.reduce( function( previousValue, currentValue ){
return previousValue += parseInt(currentValue.price)
}, 0);
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce