192 votes

Comment vérifier si un nombre est compris entre deux valeurs ?

En JavaScript, je demande au navigateur de faire quelque chose si la taille de la fenêtre est supérieure à 500px. Je le fais comme ça :

if (windowsize > 500) {
    // do this
}

Cela fonctionne très bien, mais j'aimerais appliquer cette même méthode, mais avec une plage de chiffres. Je voudrais donc dire à mon navigateur de faire des choses si la taille de la fenêtre est comprise entre 500px et 600px. Je sais que cela ne fonctionnerait pas, mais voici comment je l'ai imaginé :

if (windowsize > 500-600) {
    // do this
}

Est-ce que c'est possible, même en JavaScript ?

4voto

Hanzla Habib Points 1667

Vous pouvez utiliser la clause Multiple dans if au lieu d'écrire

if (windowsize > 500-600) {
    // do this
}

parce que cela n'a vraiment aucun sens logiquement JavaScript lira votre condition if comme

windowSize > -100 

car il calcule 500-600 à -100

Vous devez utiliser && pour une vérification stricte des deux cas par exemple qui ressemblera à ceci

if( windowSize > 500 && windowSize < 600 ){

// Then doo something

}

4voto

yukashima huksay Points 722

Voici la méthode la plus courte possible :

if (Math.abs(v-550)<50) console.log('short')
if ((v-500)*(v-600)<0) console.log('short')

Paramétrée :

if (Math.abs(v-max+v-min)<max+min) console.log('short')
if ((v-min)*(v-max)<0) console.log('short')

Vous pouvez diviser les deux côtés par 2 si vous ne comprenez pas comment fonctionne le premier ;)

4voto

Fahd Allebdi Points 306

Il s'agit d'une méthode générique, que vous pouvez utiliser partout.

const isBetween = (num1,num2,value) => value > num1 && value < num2

3voto

Isaac Vega Points 227

Je sais qu'il y a une réponse toute faite, mais je veux proposer quelques pistes qui peuvent être utiles dans certains scénarios. Si nous voulons vérifier si n est entre x y y Nous pouvons le faire :

x <= n && n <= y
(x - n) * (y - n) <= 0

La deuxième est très utile lorsque vous essayez d'obtenir le même résultat même si vous échangez x y y .

0voto

CodeSpike Points 110

Je viens d'implémenter ce petit bout de jQuery pour afficher et cacher les valeurs modales de bootstrap. Différents champs sont affichés en fonction de la plage de valeurs de la zone de texte de l'utilisateur.

$(document).ready(function () {
    jQuery.noConflict();
    var Ammount = document.getElementById('Ammount');

    $("#addtocart").click(function () {

            if ($(Ammount).val() >= 250 && $(Ammount).val() <= 499) {
                {
                    $('#myModal').modal();
                    $("#myModalLabelbronze").show();
                    $("#myModalLabelsilver").hide();
                    $("#myModalLabelgold").hide();
                    $("#myModalPbronze").show();
                    $("#myModalPSilver").hide();
                    $("#myModalPGold").hide();
                }
            }
    });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X