gpt4 book ai didi

javascript - 循环导致 : "TypeError: Undefined is not a function"

转载 作者:行者123 更新时间:2023-12-03 10:15:12 24 4
gpt4 key购买 nike

我制作了以下脚本:

//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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com