0
var cartTotal = [];
var priceValue = x;
var priceID = y;

定义上述空数组后,我有一个循环,其中包括以下内容:

cartObj = {};
cartObj.priceID = priceValue;
cartTotal.push(cartObj);
total(priceID);

循环上述代码几次后,生成的 cartTotal 数组会如下所示:

cartTotal = [{priceID:priceValue},{priceID:priceValue}]       ?

我问的原因是因为我试图将priceID传递给下面的总函数,以便对所有 priceValue 数字求和。为什么在总函数中,a.price未定义?cartTotal.length 警报表明我有一个包含许多值的数组,因此该数组在函数中被识别。

function total(price){
alert(cartTotal.length);
totalPrice = 0;
for(var i=0;i<cartTotal.length; i++){
a = cartTotal[i];
itemPrice = parseInt(a.price);
totalPrice += itemPrice;
} 
}
4

1 回答 1

1

你需要a.priceID. 那是key您存储使用的。

不需要a,只需使用数组本身。此外,因为它是一个价格,最好使用浮动。

代码:

function total(price){
    alert(cartTotal.length);
    totalPrice = 0;
    var itemPrice;

    for(var i=0; i<cartTotal.length; i++){
        itemPrice = parseFloat(carTotal[i].priceID).toFixed(2);
        totalPrice += itemPrice;
    } 
}

问题:为什么要price作为参数传递给函数?

于 2013-01-12T17:41:09.563 回答