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

上記の空の配列を定義した後、次を含むループがあります。

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

上記のコードを数回ループした後、結果の cartTotal 配列は次のようになります。

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

私が尋ねる理由は、すべての priceValue 数値を合計するために、以下の合計関数にpriceIDを渡そうとしているためです。total 関数で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。配列自体を使用するだけです。また、値段なのでfloatの方がお得です。

コード:

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 に答える