JavaScript - 是否可以在不使用OR的情况下在一个条件下检查多个工作日

JavaScript - Is it possible to check multiple weekdays in one condition without using OR?

本文关键字:工作日 一个 检查 条件下 情况下 是否 OR JavaScript      更新时间:2023-09-26

我想缩短以下代码:

if (d.getDay() == 1 && d.getHours() <= 21 || d.getDay() == 2 && d.getHours() <= 21 || d.getDay() == 3 && d.getHours() <= 21 || d.getDay() == 4 && d.getHours() <= 21 || d.getDay() == 5 && d.getHours() <= 21) {
    //do something
}

像这样?

if (d.getDay() == 1-5 && d.getHours() <= 21) {
    //do something
}

甚至更短。这可能吗,最好的方法是什么?我在代码中多次使用该行,有时几乎没有变化。如果可能的话,没有jQuery。

您可以使用 >=<= 运算符来简化if条件,

var day = d.getDay();
var hours = d.getHours();
if ((day >= 1 && day <=5) && hours <= 21) {
    //do something
}

从Rajaprabhu Aravindasamy的回答中剃掉几个按键:

var day = d.getDay();
var hours = d.getHours();
if (hours < [0,22,22,22,22,22,0][day]) {
    //do something
}