2 回答
TA贡献1895条经验 获得超7个赞
1 <= num <= 7不做你认为它做的事。在 JavaScript 中,二元运算符是从左到右计算的。1 <= num <= 7确实 也是如此,(1 <= num) <= 7它是true <= 7或者false <= 7(取决于num是什么)。无论哪种方式,它都会计算为true,但不要问我为什么,因为无论如何你都不应该将布尔值与数字进行比较。由于条件始终为true,else因此分支永远不会执行,因此您永远不会得到null。
我想你想写的是:
if (1 <= num && num <= 7) {
...
} else {
...
}
此外,请记住数组索引以 开头0。在你的例子中,days[1]将是'Tuesday',而不是'Monday'。
TA贡献1828条经验 获得超13个赞
我希望这个答案对你有帮助:)
const days = ['Monday', 'Tuesyday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
const returnDay = (num) => {
const day = num - 1;
if (days[day]) { // since you passing 0 there is no such element in the array at index -1,
//so if statement essentially evaluates to false and returning null right away;
return days[day];
}
return null;
};
console.log(returnDay(1)); // Monday
console.log(returnDay(7)); // Sunday
console.log(returnDay(4)); // Thursday
console.log(returnDay(0)); // null
添加回答
举报