2013-01-12 29 views
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傳遞到下面的總體功能以整理所有價格數字。爲什麼在總功能中,是a.price undefined? 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; 
} 
} 

回答

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作爲參數傳遞給函數?

+0

priceID在執行時傳遞到總函數** total(priceID); **。所以我想當我定義函數時,我可以有任何東西來表示這個傳遞的參數。例如: – DVCITIS

+0

**函數總數(價格){**或**函數總數(a){**我過去做過類似的事情。爲什麼價格不能代表執行函數時傳遞的參數priceID?謝謝你回覆btw。 – DVCITIS

+0

@bfavaretto哪個'var s'? – ATOzTOA