Javascript:将动态生成的值分配给新数组

时间:2009-12-27 18:33:52

标签: javascript arrays loops

我循环遍历3个数组,在每个数组中找到'actionTimings'并添加actionTimings值(值都是数字)。 如何将我获得的3个值分配给新数组?这是我到目前为止所拥有的......

$.each(dinnerComponents, function(intIndex, component) {
    totalCookTime = 0;
    for ( var i = 0; i < component.actionTimings.length; i++ ) {
        totalCookTime += component.actionTimings[i];
    }
});

我试过了:

totalCookTime = new Array(totalCookTime);

但是这个数组包含3组逗号(,)。似乎是逗号数= totalCookTime-1。与逗号分隔的值有什么关系?我对阵列的了解有点受到限制。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用数组push方法:

var grandTotals = [];  // will contain the sub-totals for each 'dinerComponent'
$.each(dinnerComponents, function(intIndex, component) {
  var totalCookTime = 0;
  for ( var i = 0; i < component.actionTimings.length; i++ ) {
    totalCookTime += +component.actionTimings[i]; // unary plus to ensure Number
  }
  grandTotals.push(totalCookTime);
});

答案 1 :(得分:0)

你的问题基本上是新的Array(n)创建一个带有“槽”的数组。

无论如何,最好的办法是使用jQuery的“map”方法,将一个数组转换为另一个数组:

var totalCookTime = $(dinnerComponents).map(function (component) {
    var cookTime = 0;
    $(component.actionTimings).each(function (index,timing) {
        cookTime += timing;
    })
    return cookTime;
}).get();

(最终的.get()返回一个实际的数组,而不是一个行为类似于数组的特殊jQuery对象。)