Javascript 将对象推入数组,然后在生成的数据结构中循环

Javascript 将对象推入数组,然后在生成的数据结构中循环,javascript,arrays,object,for-loop,parameter-passing,Javascript,Arrays,Object,For Loop,Parameter Passing,定义上述空数组后,我有一个循环,其中包括以下内容: var cartTotal = []; var priceValue = x; var priceID = y; 将上述代码循环几次后,生成的cartTotal数组将如下所示: cartObj = {}; cartObj.priceID = priceValue; cartTotal.push(cartObj); total(priceID); 我之所以问这个问题,是因为我试图将priceID传递给下面的total函数,以便对所有price

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

var cartTotal = [];
var priceValue = x;
var priceID = y;
将上述代码循环几次后,生成的cartTotal数组将如下所示:

cartObj = {};
cartObj.priceID = priceValue;
cartTotal.push(cartObj);
total(priceID);
我之所以问这个问题,是因为我试图将priceID传递给下面的total函数,以便对所有priceValue数字求和。为什么在total函数中,a.price未定义?cartTotal.length警报表示我有一个具有多个值的数组,因此可以在函数中识别该数组

cartTotal = [{priceID:priceValue},{priceID:priceValue}]       ?
功能总计(价格){
警报(总长度);
总价=0;

对于(var i=0;i您需要
a.priceID
。这是您使用存储的

不需要
a
,只需使用数组本身。另外,由于这是一种价格,所以最好使用float

代码:

功能总计(价格){
警报(总长度);
总价=0;
var项目价格;

for(var i=0;ipriceID在执行total(priceID)时传递给total函数。因此,我认为在定义函数时,可以用任何东西来表示此传递的参数。例如:function total(price){或function total(a){我过去也做过类似的事情。为什么price不代表函数执行时传递的参数priceID?谢谢你回复,顺便说一句。@bFavareto,在操作码上,
a
itemPrice
totalPrice
。在你的操作码上,
itemPrice
totalPrice
(我将返回最后一个函数,而不是使用全局函数)。目前,total函数位于另一个声明了priceID的函数中。priceID不是全局变量。我不确定是否需要将total()移到其他位置。我不太了解javascript在函数布局等方面应该如何构造。
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;
} 
}
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;
    } 
}