我在for循环中合并2个数组时遇到问题,请参阅代码:
function count_days(tijden,datums ){
var length = tijden.length;
element = null;
var similarities =0;
var backup = [];
var dateArray =[];
for (var i = 0; i <length; i++) {
element = tijden[i];
tijden[i] = element;
dateArray = getDates(new Date(tijden[i]['begin']), new Date(tijden[i]['eind']));
}
问题是当代码运行时,我为每个循环得到一个数组。我需要从所有循环中获取一个包含数据的数组。我试着连续但是没有让它工作
答案 0 :(得分:1)
应该是......
dateArray.push(
getDates(new Date(tijden[i]['begin']), new Date(tijden[i]['eind']))
);
...或者,如果getDates
方法返回一个数组,并且您想要展平dateArray
:
Array.prototype.push.apply(dateArray,
getDates(new Date(tijden[i]['begin']),
new Date(tijden[i]['eind']))
);
就目前而言,您只需在dateArray
循环的每一步重写for
。
旁注:这......
element = tijden[i];
tijden[i] = element;
......完全没有意义:这些行中的至少一行(很可能是后者)是多余的。删除它 - 代码变得更容易阅读:
var element, currDates;
for (var i = 0, i < length; i++) {
element = tijden[i];
currDates = getDates(new Date(element.begin), new Date(element.eind));
Array.prototype.push.apply(dateArray, currDates);
}