У меня был момент, поэтому, хотя вы уже приняли ответ, я подумал, что внесу следующее:
Number.prototype.between = function(a, b) {
var min = Math.min.apply(Math, [a, b]),
max = Math.max.apply(Math, [a, b]);
return this > min && this < max;
};
var windowSize = 550;
console.log(windowSize.between(500, 600));
Демо JS Fiddle .
Или, если вы предпочитаете иметь возможность проверять, находится ли число в заданном диапазоне, включая конечные точки :
Number.prototype.between = function(a, b, inclusive) {
var min = Math.min.apply(Math, [a, b]),
max = Math.max.apply(Math, [a, b]);
return inclusive ? this >= min && this <= max : this > min && this < max;
};
var windowSize = 500;
console.log(windowSize.between(500, 603, true));
Демо JS Fiddle .
Отредактировано, чтобы добавить небольшую поправку к вышеизложенному, учитывая, что - как отмечено в комментариях -
… Function.prototype.apply()Медленно! Кроме того, что вызывать его при фиксированном количестве аргументов бессмысленно ...
стоило исключить использование Function.prototype.apply(), которое дает измененные версии вышеуказанных методов, во-первых, без опции 'inclusive':
Number.prototype.between = function(a, b) {
var min = Math.min(a, b),
max = Math.max(a, b);
return this > min && this < max;
};
var windowSize = 550;
console.log(windowSize.between(500, 600));
Демо JS Fiddle .
И с опцией «включительно»:
Number.prototype.between = function(a, b, inclusive) {
var min = Math.min(a, b),
max = Math.max(a, b);
return inclusive ? this >= min && this <= max : this > min && this < max;
}
var windowSize = 500;
console.log(windowSize.between(500, 603, true));
Демо JS Fiddle .
Ссылки: