【问题标题】:Javascript: Assign dynamically produced values to new arrayJavascript:将动态生成的值分配给新数组
【发布时间】:2009-12-27 18:33:52
【问题描述】:

我正在循环 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。与逗号分隔的值有关吗?恐怕我对数组的了解有点有限。

感谢您的帮助。

【问题讨论】:

    标签: javascript arrays loops


    【解决方案1】:

    你可以使用数组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);
    });
    

    【讨论】:

      【解决方案2】:

      您的问题本质上是 new Array(n) 用 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 对象。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-28
        • 2013-12-18
        • 2016-06-03
        • 1970-01-01
        • 2020-07-27
        • 1970-01-01
        • 2023-03-23
        • 2015-07-06
        相关资源
        最近更新 更多