我试图遍历数组中的对象,并用键“ 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相同吗?任何解释和修复都将不胜感激,力求获得很好的理解!

最佳答案

第一次进入循环时,将totalPrice设置为0。然后添加第一个商品价格,因此totalPrice为25。然后第二次进入循环,将totalPrice再次设置为0,即0 + 50 = 50。

您应该在循环之前初始化totalPrice

10-07 17:23