繁体   English   中英

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

[英]Insert datas from a JavaScript array to another one

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

使用简单的循环:

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

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

var copy = array.slice();

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

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

如果您需要旧版浏览器支持使用来自MDN的 map()方法的shim

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM