Javascript : alternative de if ( x == (a || b || c || d) ) ?

Quedza Messages postés 289 Statut Membre -  
Quedza Messages postés 289 Statut Membre -
Salut à tous.

J'aimerai savoir s'il serait possible de "factoriser" les possibilités sur JavaScript.

Concrètement, y a-t-il une alternative de la factorisation " if ( x == (a || b || c || d) ) " au lieu de " if ( (x == a) || (x == b) || (x == c) || (x == d) ) " ?
"Alternative" parce que " if ( x == (a || b || c || d) ) " ne fonctionne pas.

Il me semble qu'il est possible de le faire avec PHP...

Merci d'avance.

Laurent

4 réponses

  1. Rakholnikov
     
    Salut,
    l'écriture correcte est plutôt:

    if(x==a || x==b || x==c || x==d){};

    sinon utilisez un switch

    http://www.w3schools.com/js/js_switch.asp

    ou un tableau de variables et recherchez si celui ci contient la valeur de x

    http://stackoverflow.com/questions/6116474/how-to-find-if-an-array-contains-a-specific-string-in-javascript-jquery

    Bref vous avez plusieurs façons de faire tandis qu'aucune de celle que vous indiquez n'est une syntaxe correcte...
    0
  2. Quedza Messages postés 289 Statut Membre 18
     
    Merci, mais mon code " if ( (x == a) || (x == b) || (x == c) || (x == d) ) ", bien que maladroit et non "économe", fonctionne bel et bien...
    À force de faire des essais, j'ai mis des parenthèses inutiles en trop.
    0
  3. ryko1820 Messages postés 1633 Date d'inscription   Statut Membre Dernière intervention   310
     
    Le robot modérateur m'interdisait le (x) dans la balise code alors j'ai mis (y) à la place de ta variable (x) :p
    J'aimais bien la solution avec array évoquée plus haut.

    if ([a,b,c,d].indexOf(y) > -1)


    Sinon pour une liste exhaustive : https://stackoverflow.com/questions/4728144/check-variable-equality-against-a-list-of-values

    You may stop me but you can't stop us all ;-)
    0
  4. Quedza Messages postés 289 Statut Membre 18
     
    Merci !
    0