(第一个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-thing 和if-statements-matching-multiple-values 和if-statement-multiple-conditions-same-statement。 我无法从这些问题中得到一个简单的答案。
最后一点:我不想创建一个接受参数的新“multiple if”函数,然后将它们与变量进行比较。我正在寻找一种“内置”的方式来做到这一点。
谢谢, -Charles
答案 0 :(得分:4)
某些语言,如Python和Coffeescript(编译为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
}