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 ?

0voto

Eliav Louski Points 498

Comme la réponse de David, mais j'avais besoin d'inclure soit a soit b. Donc ma solution :

export const between = (num: number, a: number, b: number, inclusiveA = true, inclusiveB = true): boolean => {
  if (a > b) [a, b, inclusiveA, inclusiveB] = [b, a, inclusiveB, inclusiveA];
  if (a == b && (inclusiveA || inclusiveB)) [inclusiveA, inclusiveB] = [true, true];
  return (inclusiveA ? num >= a : num > a) && (inclusiveB ? num <= b : num < b);
};

if (require.main === module) {
  console.log(between(12, 15, 10)); //true
  console.log(between(15, 15, 10)); //true
  console.log(between(15, 10, 15)); //true
  console.log(between(10, 10, 15, false)); //false
  console.log(between(15, 10, 10, true, false)); //false

  //edge case: if a==b then enough that either of the edges is inclusive
  console.log(between(10, 10, 10, true, false)); //true
}

c'est aussi du type script et non du javascript

0voto

mojaba moradi Points 41
  function handleBetween(number, calc) {
        let [a, b] = calc;
        let min = Math.min(a, b), max = Math.max(a, b);
        return number > min && number < max;
    }

    if(510 >500 && 510 <600){
    console.log(`510 >500 && 510 <600 is true`)
    }

    if(610 >500 && 610 <600){
    // false
    console.log(`610 >500 && 610 <600 is true`)
    } else console.log(`610 >500 && 610 <600 is false`)

     console.log(handleBetween(510, [500, 600])); // true
     console.log(handleBetween(610, [500, 600])); // false

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