J'ai eu un moment, alors, bien que vous ayez déjà accepté une réponse, j'ai pensé que je pourrais contribuer ce qui suit :
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));
Démonstration de JS Fiddle .
Ou, si vous préférez avoir la possibilité de vérifier qu'un nombre se situe dans la plage définie y compris les points finaux :
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));
Démonstration de JS Fiddle .
J'ai ajouté une modification mineure à ce qui précède, étant donné que, comme indiqué dans les commentaires -
Function.prototype.apply()
est lent ! De plus, l'appeler quand on a un nombre fixe d'arguments est inutile
il valait la peine de supprimer l'utilisation de Function.prototype.apply()
qui donne les versions modifiées des méthodes ci-dessus, d'abord sans l'option "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));
Démonstration de JS Fiddle .
Et avec l'option "inclusive" :
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));
Démonstration de JS Fiddle .
Références :