utilisation de l’opérateur OR dans l’instruction javascript switch

Je fais une déclaration switch en javascript:

switch($tp_type){ case 'ITP': $('#indv_tp_id').val(data); break; case 'CRP'||'COO'||'FOU': $('#jurd_tp_id').val(data); break; } 

Mais je pense que cela ne fonctionne pas si j’utilise l’opérateur OR. Comment puis-je faire cela correctement en javascript? Si je choisis ITP, je reçois ITP. Mais si je choisis COO, FOU OU CRP, je reçois toujours le premier qui est CRP. S’il vous plaît aider, merci!

Vous devriez le réécrire comme ceci:

 case 'CRP': case 'COO': case 'FOU': $('#jurd_tp_id').val(data); break; 

Vous pouvez le voir documenté dans la référence du switch . Le comportement des instructions de case consécutives sans break (appelé “basculement”) est décrit ici:

L’instruction break facultative associée à chaque étiquette de cas garantit que le programme se déconnecte du commutateur une fois que l’instruction correspondante est exécutée et continue de s’exécuter au commutateur suivant. Si break est omis, le programme continue l’exécution à l’instruction suivante de l’instruction switch .

Pourquoi votre version ne fonctionne-t-elle que pour le premier élément ( CRP ), c’est simplement parce que l’expression 'CRP'||'COO'||'FOU' évaluée à 'CRP' (puisque les chaînes non vides sont évaluées à true dans un contexte booléen ). Donc, cette instruction case est équivalente à la case 'CRP': une fois évaluée.