174 votes

Vérifier l'égalité d'une variable par rapport à une liste de valeurs

Je vérifie une variable, disons foo pour l'égalité à un certain nombre de valeurs. Par exemple,

if( foo == 1 || foo == 3 || foo == 12 ) {
    // ...
}

Le fait est qu'il s'agit d'un code assez volumineux pour une tâche aussi triviale. J'ai trouvé ce qui suit :

if( foo in {1: 1, 3: 1, 12: 1} ) {
    // ...
}

mais cela ne me plaît pas du tout, car je dois donner des valeurs redondantes aux éléments de l'objet.

Quelqu'un connaît-il un moyen décent de vérifier l'égalité de plusieurs valeurs ?

-6voto

martisj Points 56

Pour la postérité, vous pouvez utiliser les expressions régulières comme alternative. La prise en charge par les navigateurs est également assez bonne (réf. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match#Browser_compatibility )

Essayez ceci

if (foo.toString().match(/^(1|3|12)$/)) {
    document.write('Regex me IN<br>');
} else {
    document.write('Regex me OUT<br>');
}

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