Javascript循环以创建数组数组(而不是通过数组数组循环)

Javascript循环以创建数组数组(而不是通过数组数组循环),javascript,arrays,loops,Javascript,Arrays,Loops,我试图循环使用两个日期数组,dateFrom和dateTo,以便在甘特图插件中使用。甘特图需要ganttData。我想同时遍历这两个数组,并将ganttData创建为数组数组。现在,它同时在两个数组中循环,但ganttData只是两个数组的最后一个索引,这是有意义的,因为我只是在循环中每次重新分配值 我尝试使用+=而不是=,但出现了一个错误: 未捕获的TypeError:无法读取未定义的属性“length” 以下是我目前掌握的代码: 这些数组是正确的,我检查过了 我不熟悉JS,因此非常感谢您的帮

我试图循环使用两个日期数组,
dateFrom
dateTo
,以便在甘特图插件中使用。甘特图需要
ganttData
。我想同时遍历这两个数组,并将
ganttData
创建为数组数组。现在,它同时在两个数组中循环,但
ganttData
只是两个数组的最后一个索引,这是有意义的,因为我只是在循环中每次重新分配值

我尝试使用
+=
而不是
=
,但出现了一个错误:

未捕获的TypeError:无法读取未定义的属性“length”

以下是我目前掌握的代码:

这些数组是正确的,我检查过了

我不熟悉JS,因此非常感谢您的帮助。谢谢大家!

var datesFrom = <%= dates_from %>
var datesTo = <%= dates_to %>
//var ganttData = [] if I were to use ganttData += [ below 

output = []
i;

for (i = 0; i < (datesFrom.length - 1); i += 1) {
    ganttData = [{
        id: 1, name: "Feature 1", series: [
            { name: "Planned", start: new Date(datesFrom[i]), end: new Date(datesTo[i]) },
            { name: "Actual", start: new Date(datesFrom[i]), end: new Date(datesTo[i]), color: "#f0f0f0" }
        ]
    }];
};  
var datesFrom=
var datesTo=
//var GANTDATA=[]如果我使用下面的GANTDATA+=[的话
输出=[]
我
对于(i=0;i<(datesFrom.length-1);i+=1){
甘特图数据=[{
id:1,名称:“功能1”,系列:[
{名称:“计划”,开始:新日期(日期自[i]),结束:新日期(日期至[i]),
{名称:“实际”,开始:新日期(日期自[i]),结束:新日期(日期至[i]),颜色:“#f0f0”}
]
}];
};  

通常,要构建阵列,您可以使用以下模式:

var ganttData = [];
for (...) {
  ganttData.push({...});
}

在JavaScript中,与Ruby相反,
array1+array2
没有定义:它将把两个参数转换为字符串,并将它们连接起来。对于数组连接,您需要使用
array1.concat(array2)
,或者如果您想要一种破坏性的方法(即更改
array1
),
array1.push.apply(array1,array2)
;但是对于附加一个元素,
push
是一个更好的选择。

假设DateTo和datesFrom的长度相同,您需要创建一个数组(甘特图),并为每对日期向其推送一个新对象,如下所示:

var ganttData = [];

for(var i = 0; i < datesFrom.length; i++) {
  ganttData.push({
    id: i,
    name: "Feature " + i,
    series: [
      { name: "Planned", start: new Date(datesFrom[i]), end: new Date(datesTo[i]) },
      { name: "Actual", start: new Date(datesFrom[i]), end: new Date(datesTo[i]), color: "#f0f0f0" }
    ]
  });
}
var ganttData=[];
对于(var i=0;i
datesFrom和DateTo数组的长度是否相同?是的,现在是这样!将来它们可能会有所不同,但我认为我可以在rails代码中处理这一点。非常感谢!非常好。我的一天刚刚好了很多!感谢您的模式!我会记住这一点!