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

时间:2016-03-07 11:03:56

标签: javascript

我想缩短以下代码:

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。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

从Rajaprabhu Aravindasamy的回答中删除一些按键:

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