缩短相同变量的多个IF条件

时间:2014-03-27 21:08:38

标签: javascript if-statement

(第一个stackoverflow帖子) 这是一个javaScript问题,但我认为逻辑适用于任何地方

我很想知道使用if语句将多个值与同一个变量进行比较而不需要每次都输出变量;特别是关于“大于”和“小于”。

我想解决的具体例子是:

var middle = 5;
if(middle < 10 && middle > 0) {
    //some stuff
}

我正在寻找类似的东西:

var middle = 5;
if(middle (< 10 && > 0)) {
    //the same stuff
}

我查了is-there-a-way-to-shorten-the-condition-if-it-always-compares-to-the-same-thingif-statements-matching-multiple-valuesif-statement-multiple-conditions-same-statement。 我无法从这些问题中得到一个简单的答案。

最后一点:我不想创建一个接受参数的新“multiple if”函数,然后将它们与变量进行比较。我正在寻找一种“内置”的方式来做到这一点。

谢谢, -Charles

4 个答案:

答案 0 :(得分:4)

某些语言,如PythonCoffeescript(编译为JS!)有链接比较

if (0 < middle < 10)

然而, Javascript不拥有这些。就像您已经做的那样,您需要引用变量两次:

if (0 < middle && middle < 10)

答案 1 :(得分:1)

我不相信这是可能的,对于逻辑运算符,您需要运算符的两边评估为真或假。

如果您遗漏了某一方,则无法对该陈述进行评估。

答案 2 :(得分:0)

  

我正在寻找一种“内置”方式来实现这一目标。

Javascript不支持此功能。事实上,大多数语言都没有,而Python是我能想到的唯一一个着名的例子(你可以在那里写0 < middle < 10)。

在Javascript中,您可以做的最好是使用较短的变量名称

if(0 <= x && x < 10)

或者将常见的测试抽象为函数

if(between(0, x, 10))

答案 3 :(得分:0)

是的,不要这样做,但只是为了它:

if (Math.min(10, Math.max(0, middle)) == middle) {
   // middle is between 0 and 10
}