Comment raccourcir mes instructions conditionnelles

J'ai une très longue instruction conditionnelle comme suit:

if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){
    //do something.
}

Je me demandais si je pouvais refactoriser cette expression/déclaration dans une forme plus concise.

Aucune idée sur comment faire?

  • Vous pouvez les mettre dans un tableau et utiliser in?
  • snook.ca/archives/javascript/testing_for_a_v
  • maintenant, seulement si quelqu'un pouvait vérifier lequel est le plus rapide
  • cela peut être un choc pour tout le monde mais ce que l'OP a est un gagnant clair dans la vitesse!!!!!!! Peut-être à cause du navigateur optimiser pour cela beaucoup.. Résultats: (1) si avec ||. (2) switch consolidés. (3) regex. (4) ~. jsperf.com/if-statements-test-techsin
  • Vous pouvez également être en approchant de cette façon le mal. Dans ce cas, ces 4 types ont quelque chose en commun. Quel est-il? Si nous prenons cela pour un cas plus extrême, que si nous devions ajouter 10 autres types de correspondre à cette condition. Ou 100? S'il n'y avait plus, vous n'auriez probablement pas envisager de recourir à cette solution, ou de toute autres propositions. Vous êtes témoins d'un grand si l'instruction de ce genre, et de penser que c'est une odeur de code, ce qui est un bon signe. Votre meilleur moyen de le rendre plus concis serait si vous pouviez écrire if (test.your_common_condition). C'est plus facile à comprendre dans ce contexte, et plus extensible.
  • Lire: Optimiser OU SI
  • En python ce serais simplement if test.type in ('itema', 'itemb', ...):
  • Ces résultats sont très bizarre lorsque l'on compare les résultats entre Firefox & Chrome, que la différence est ÉNORME.
  • ff a battu chrome en js vitesse récemment, donc oui.
  • Cette question est actuellement un double de double de double de double de double. (this -> Javascript formatage si la condition -> Javascript: Comparaison de la Valeur UNIQUE à l'Encontre de PLUSIEURS Valeurs avec OU Opérandes -> Javascript si l'instruction avec plusieurs admissibilité-conditions ->Javascript Si l'instruction utilisée pour vérifier les extensions de fichier ne fonctionne pas)

InformationsquelleAutor FlyingCat | 2013-08-21