将数据从JavaScript数组插入另一个数组

时间:2013-04-18 16:20:17

标签: javascript arrays arraylist

我已将两个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中如何实现?在这种情况下应该使用什么方法?

3 个答案:

答案 0 :(得分:3)

使用简单的循环:

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

如果你想获得一个新阵列,那就不会改变第一个阵列,只需复制它即可。在JavaScript中,这是使用

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

答案 1 :(得分:0)

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

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

如果您需要旧浏览器支持,请使用map()方法从 MDN 中使用{{1}}方法。

答案 2 :(得分:0)

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

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