作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了以下脚本:
//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()
};
<小时/>
上面的脚本返回类型错误:未定义不是函数
。我不明白。
我在开始时声明了 dateinterval 变量,因此它应该是一个全局变量。然后我用第一个循环修改 dateinterval 变量。
但是,当在第二个循环中使用全局变量时,就好像第二个循环只“看到”在开头定义的变量(只有一个日期),因此“0”以上的所有索引都变为“未定义”。我通过尝试将 dateinterval[i] 更改为 dateinterval[0] 来确定这一点。这有效。如果我将其更改为 dateinterval[1] ,则会导致上述错误。
我错过了什么?
最佳答案
主要问题是第一个循环,您将 setDate()
返回的值分配给以毫秒为单位的时间数组(因此您会遇到类似 dateinterval[i ].getDay 不是函数
)
//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
关于javascript - 循环导致 : "TypeError: Undefined is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915185/
我是一名优秀的程序员,十分优秀!