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;
}
}
答案 0 :(得分: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
作为参数传递给函数?