Comment puis-je raccourcir ce code? Je veux retourner toutes les valeurs sauf "abc" ou "xyz" ou "pqr"Combinaison de plusieurs conditions en une seule fois en Javascript
return this.value != "abc" && this.value != "xyz" && this.value != "pqr";
Comment puis-je raccourcir ce code? Je veux retourner toutes les valeurs sauf "abc" ou "xyz" ou "pqr"Combinaison de plusieurs conditions en une seule fois en Javascript
return this.value != "abc" && this.value != "xyz" && this.value != "pqr";
Vous pouvez utiliser un tableau:
return ["abc","xyz","pqr"].indexOf(this.value) == -1;
Ou un objet:
return !({"abc":1,"xyz":1,"pqr":1}).hasOwnProperty(this.value);
2 les manières les plus courantes sont:
regex
/^(abc|xyz|pqr)$/.test(this.value)
propriété d'objet recherche
this.value dans ({ 'abc': 1 , 'xyz': 1, 'pqr': 1})
Notez que solution regex (# 1) sera certainement plus lente que la comparaison simple (votre version) ou recherche de propriété (# 2) .
Aussi, rappelez-vous que recherche de la propriété est pas très fiable, car il pourrait rapporter de faux positifs pour une clé qui est le même nom que l'une des Object.prototype.*
propriétés (par exemple « toString », « valueOf », etc.)
étonnamment la première instruction donne une erreur dans IE7 mais fonctionne bien dans tous les autres navigateurs – Hitz
Il semble qu'Internet Explorer a cette méthode pas encore implémentée dans la version 7. – Gumbo
Le schéma d'objet ne fonctionne pas. Considérez this.value === 'toString'. Vous pouvez le réparer en utilisant hasOwnProperty à la place –