检测一个数字是否介于2个其他数字之间?

时间:2011-07-29 19:42:49

标签: javascript

检测数字是否在两个其他数字之间的最佳方法是什么?是否已在Math对象中执行此操作?

5 个答案:

答案 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

示例: http://jsfiddle.net/dTHQ3/

答案 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(如果失败,则不会测试不太可能的标准)。这是优化它的唯一方法。

即使这样也可以节省您最不可能注意到的最短时间。也许如果你进行数百万次检查,你可能会在替代方案上节省一小部分时间。