【发布时间】:2021-04-21 16:41:26
【问题描述】:
我写了一个函数,它返回一个给定数字(1 = 星期一,2 = 星期二等)的星期几,我应该创建一个警告,如果数字小于 1 或大于 7,函数应该返回 null。为什么它会为 0 和 8 返回 undefined?
daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
function returnDay(day) {
day = daysOfWeek[day - 1];
if (day > 7 || day < 1) {
return null
} else {
return day
}
}
console.log(returnDay(8))
console.log(returnDay(0))
【问题讨论】:
-
也许索引
day - 1处的daysOfWeek项未定义?能否分享一个调用函数的示例以及daysOfWeek的示例? -
请在问题中添加
daysOfWeek。 -
day = daysOfWeek[day-1];您正在覆盖day,因此在此之后它将不再是一个数字。因此,在此之后的在线检查不会像您期望的那样工作。 -
在检查输入是否有效之前,您正在重新分配给
day。 -
记下你在函数中做的第一件事,before if
标签: javascript arrays function null