【问题标题】:Insert datas from a JavaScript array to another one将数据从 JavaScript 数组插入另一个数组
【发布时间】:2013-04-11 21:03:53
【问题描述】:

我已经定义了两个 JavaScript 变量,它们是数组,如下所示:

var myMondaysImpressionsData = new Array(['2013-01-21', 2015], ['2013-01-28', 2967], ['2013-02-04', 2419], ['2013-02-11', 1311], ['2013-02-18', 1398], ['2013-02-25', 86161], ['2013-03-04', 216865], ['2013-03-11', 105252], ['2013-03-18', 141978], ['2013-03-25', 4647], ['2013-04-01', 46339], ['2013-04-08', 19920]);

和:

var myMondaysImpressionsPaidData = new Array([0], [0], [0], [0], [0], [69428], [186482], [74850], [107281], [0], [32781], [0]);

使用此表单有点强制性,因为它用于进一步的范围。我的问题是我想获取在第二个数组中找到的值并像这样添加它们:

var example = new Array(['2013-01-21', 2015, 0], ['2013-01-28', 2967, 0], ['2013-02-04', 2419, 0], ['2013-02-11', 1311, 0], ['2013-02-18', 1398, 0], ['2013-02-25', 86161, 69428], ['2013-03-04', 216865, 186482], ['2013-03-11', 105252, 74850], ['2013-03-18', 141978, 107281], ['2013-03-25', 4647, 0], ['2013-04-01', 46339, 32781], ['2013-04-08', 19920, 0]);

在第一个数组中。就像我说的,我必须达到上面示例变量中显示的形式。这在 JavaScript 中怎么可能?在这种情况下应该使用什么方法?

【问题讨论】:

    标签: javascript arrays arraylist


    【解决方案1】:

    使用 Array 的 concat 函数并假设您想创建一个包含最终结果的新对象,我会这样解决。

    var example = [], length = myMondaysImpressionsPaidData.length, i;
    for (i = 0; i < length; i++) {
        example.push(myMondaysImpressionsData[i].concat(myMondaysImpressionsPaidData[i]));
    }
    

    【讨论】:

      【解决方案2】:

      使用简单的循环:

      for (var i = 0; i < myMondaysImpressionsData.length; i++) {
          if (i < myMondaysImpressionsPaidData.length) {
              myMondaysImpressionsData[i].push(myMondaysImpressionsPaidData[0]);
          }
      }
      

      如果你想得到一个新的数组,那就是不改变第一个,只需复制它之前。在 JavaScript 中,这是使用

      完成的
      var copy = array.slice();
      

      【讨论】:

      • OP 想要一个新数组,还是修改myMondaysImpressionsData 数组?
      • 我想修改数组,如果可能的话不要创建一个新数组:)
      【解决方案3】:

      现代浏览器的一种可能解决方案:

      var example = myMondaysImpressionsData.slice().map(function(e, i) {
          return e.concat(myMondaysImpressionsPaidData[i]);
      });
      

      如果您需要旧浏览器支持,请使用 MDN 中的map() 方法使用shim

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-04
        • 2015-09-19
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 2018-08-13
        相关资源
        最近更新 更多