检测数字是否在两个其他数字之间的最佳方法是什么?是否已在Math对象中执行此操作?
答案 0 :(得分:9)
没有特定功能,但您可以这样做:
lowNumber < yourNumber && yourNumber < highNumber
答案 1 :(得分:3)
虽然代码解决方案相当明显,但如果您要使用它很多,为了方便起见,您可能希望在Number.prototype
上实现它:
Number.prototype.inRange = function( a,b ) {
var n = +this;
return ( n > a && n < b );
};
所以你会这样使用它:
(5).inRange( 3, 7 ); // true
答案 2 :(得分:2)
如果它大于1且小于另一个。
var num1 = 3;
var num2 = 5;
var x = 4;
var isBetween = (num1 < x && num2 > x);
答案 3 :(得分:1)
if ( yournumber < highNumber && yournumber > lowNumber ){
// do something
} else {
// do something else
}
答案 4 :(得分:0)
唯一优化的方法是猜测哪个更有可能:您的检查数量是否更可能低于下限,或者更可能高于上限?
考虑到这一点,您可以通过首先放置更可能的失败检查来利用short circuiting(如果失败,则不会测试不太可能的标准)。这是优化它的唯一方法。
即使这样也可以节省您最不可能注意到的最短时间。也许如果你进行数百万次检查,你可能会在替代方案上节省一小部分时间。