我刚刚学习了JavaScript,这是我的脚本:
var now = new Date();
var date = now.getDate();
var month = now.getMonth();
var Holidays = [
[8, 3],
[9, 8],
[10, 16],
[11, 7],
[11, 24],
[11, 25],
[11, 26],
[11, 27],
[11, 28],
[11, 29],
[11, 30],
[11, 31],
[0, 1],
[0, 2],
[0, 3],
[0, 4],
[0, 31],
[1, 15],
[1, 18],
[2, 11],
[2, 12],
[2, 13],
[2, 14],
[2, 15],
[2, 29],
[3, 1],
[4, 20],
[5, 26],
[5, 27],
[5, 28]
];
var i = 0;
while (i <= Holidays.length) {
if (check() === true) {
console.log("No school today.");
i = 32;
} else if (check() === false) {
if (i < Holidays.length) {
i++;
} else {
console.log("we work today.");
i++;
}
}
}
function check() {
if (month == Holidays[i][0] && date == Holidays[i][1]) {
return true;
} else {
return false;
}
}
目的是打印出来&#34;今天没有学校&#34;对于假日数组中的日子,否则,它会打印出来&#34;我们今天工作&#34;。 每当我运行脚本时,它总是说
类型错误Holidays [i] undefined
有人可以帮我这个吗?
答案 0 :(得分:1)
代码中至少有一个问题
while (i <= Holidays.length) {
最后我应该是Holidays.length-1,所以请使用:
while (i < Holidays.length) {
答案 1 :(得分:1)
代码最后一次执行i++
时,i
将以假日+ 1的最后一个索引结束。
因此,在抛出错误的行中,您正在尝试检索不在数组中的项目。您没有尝试获取数组的特定元素,并且违规代码不在循环中,因此您可能需要检查它。