数组在 for 循环与第二个 for 循环数组 JavaScript 合并

array in for loop merge with second for loop array javascript

本文关键字:数组 for 循环 合并 JavaScript 第二个      更新时间:2023-09-26

我在 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']));

         }

问题是当代码运行时,我为每个循环得到一个数组。我需要获取一个包含所有循环数据的数组。我尝试连接,但没有让它工作

应该是...

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);
}