以下是否有简写版本:
(a > 0 && a < 1000 && b > 0 && b < 1000 && c > 0 && c < 1000)
非常感谢。
许多感谢。
以下是否有简写版本:
(a > 0 && a < 1000 && b > 0 && b < 1000 && c > 0 && c < 1000)
许多感谢。
function between(min, max, values) {
for (var i = 2; i < arguments.length; i++) {
if (arguments[i] < min || arguments[i] > max) return false;
}
return true;
}
然后使用以下方式调用:
between(1, 999, a, b, c)
min max
- thejhfunction between(min, max /*,values... */) {
。 - Guffa有很多方法可以做到这一点。个人认为,如果我要经常这样做,我会定义一个函数:
function between(val, min, max) { return min < val && val < max; }
if
检查看起来像这样:if(between(a, 0, 1000) && between(b, 0, 1000) && between(c, 0, 1000))
另一种方法是在数字本身上添加一个方法:
Number.prototype.between = function(min,max) { return min<this && this<max; };
if(a.between(0, 1000) && b.between(0, 1000) && c.between(0, 1000))
虽然这样做会更加简洁,但你也可以选择另一种方法。
注意:这两种方法都是为了方便你而设计的。它们运行速度较慢,但维护起来会更加容易...尽管使用闭包编译器和高级优化,其中大部分代码都会被内联。
Number.prototype.isInRange = function(low, high) {
return this > low && this < high;
}
现在试试这个:
(a.isInRange(0,1000) && b.isInRange(0,1000) && c.isInRange(0,1000))
如果你愿意,你可以将函数重命名为你喜欢的名称,以节省更多的按键。不过我会选择可读性 :)
a,b,c
为负数的情况,你可以这样做:(a && b && c && a < 1000 && b < 1000 && c < 1000)
或者如果你只是想稍微整理一下,你可以添加换行符,如果你不反对这种做法的话。
(a > 0 && a < 1000 &&
b > 0 && b < 1000 &&
c > 0 && c < 1000)
不会更短,但读起来更容易。
如果你担心比较的次数,那么没有捷径。如果你想减少比较中的字符数,你可以编写一个“在零和2000之间”的函数并调用它三次。
你可以使用一个 & :
(a > 0 & a < 1000 & b > 0 & b < 1000 & c > 0 & c < 1000)
我脑海中没有其他想法