Loop resulting in: "TypeError: Undefined is not a function"
Loop resulting in: "TypeError: Undefined is not a function"
我制作了以下脚本:
//Declaring global variables
var difference = 6; //difference between two dates
var startdate = new Date(2015, 04, 04); //the start date
var startday = startdato.getDay(); //the weekday of the start date
var dateinterval = [startdate]; //declaring the date array
var days = [startday]; //declaring the weekday array
//Defining a date array (works fine)
for (var i=0; i < difference; i++){
dateinterval[dateinterval.length] = dateinterval[0].setDate(datointerval[0].getDate() + i);
};
// Defining a weekday array using the date array (does not work)
for (var i=0; i < datointerval.length; i++){
days[days.length]
= dateinterval[i].getDay()
};
上面的脚本returnsTypeError: Undefined is not a function
。我不明白。
我在开头声明了 dateinterval 变量,因此它应该是一个全局变量。然后我用第一个循环修改 dateinterval 变量。
然而,当在第二个循环中使用全局变量时,就好像第二个循环只 "sees" 开头定义的变量(只有一个日期),因此所有高于“0”的索引都变成"undefined"。我通过尝试将 dateinterval[i] 更改为 dateinterval[0] 来确定这一点。这行得通。如果我将其更改为 dateinterval[1],则会导致上述错误。
我错过了什么?
主要问题是第一个循环,您将 setDate()
返回的值分配给以毫秒为单位的时间数组(因此您会遇到类似 dateinterval[i].getDay is not a function
的错误)
//Defining a date array (works fine)
for (var i = 0; i < difference; i++) {
var dt = new Date(dateinterval[0]);
dt.setDate(dt.getDate() + i);
dateinterval[dateinterval.length] = dt;
};
// Defining a weekday array using the date array (does not work)
for (var i = 0; i < dateinterval.length; i++) {
days[days.length] = dateinterval[i].getDay()
};
演示:Fiddle
我制作了以下脚本:
//Declaring global variables
var difference = 6; //difference between two dates
var startdate = new Date(2015, 04, 04); //the start date
var startday = startdato.getDay(); //the weekday of the start date
var dateinterval = [startdate]; //declaring the date array
var days = [startday]; //declaring the weekday array
//Defining a date array (works fine)
for (var i=0; i < difference; i++){
dateinterval[dateinterval.length] = dateinterval[0].setDate(datointerval[0].getDate() + i);
};
// Defining a weekday array using the date array (does not work)
for (var i=0; i < datointerval.length; i++){
days[days.length]
= dateinterval[i].getDay()
};
上面的脚本returnsTypeError: Undefined is not a function
。我不明白。
我在开头声明了 dateinterval 变量,因此它应该是一个全局变量。然后我用第一个循环修改 dateinterval 变量。
然而,当在第二个循环中使用全局变量时,就好像第二个循环只 "sees" 开头定义的变量(只有一个日期),因此所有高于“0”的索引都变成"undefined"。我通过尝试将 dateinterval[i] 更改为 dateinterval[0] 来确定这一点。这行得通。如果我将其更改为 dateinterval[1],则会导致上述错误。
我错过了什么?
主要问题是第一个循环,您将 setDate()
返回的值分配给以毫秒为单位的时间数组(因此您会遇到类似 dateinterval[i].getDay is not a function
的错误)
//Defining a date array (works fine)
for (var i = 0; i < difference; i++) {
var dt = new Date(dateinterval[0]);
dt.setDate(dt.getDate() + i);
dateinterval[dateinterval.length] = dt;
};
// Defining a weekday array using the date array (does not work)
for (var i = 0; i < dateinterval.length; i++) {
days[days.length] = dateinterval[i].getDay()
};
演示:Fiddle