2 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
1 <= num <= 7不做你認(rèn)為它做的事。在 JavaScript 中,二元運(yùn)算符是從左到右計(jì)算的。1 <= num <= 7確實(shí) 也是如此,(1 <= num) <= 7它是true <= 7或者false <= 7(取決于num是什么)。無論哪種方式,它都會(huì)計(jì)算為true,但不要問我為什么,因?yàn)闊o論如何你都不應(yīng)該將布爾值與數(shù)字進(jìn)行比較。由于條件始終為true,else因此分支永遠(yuǎn)不會(huì)執(zhí)行,因此您永遠(yuǎn)不會(huì)得到null。
我想你想寫的是:
if (1 <= num && num <= 7) {
...
} else {
...
}
此外,請(qǐng)記住數(shù)組索引以 開頭0。在你的例子中,days[1]將是'Tuesday',而不是'Monday'。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
我希望這個(gè)答案對(duì)你有幫助:)
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
添加回答
舉報(bào)