Comment spécifier plusieurs conditions dans une instruction if en javascript


87

Voici comment je mentionne deux conditions si telle ou telle

if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

Réponses:


154

ajoutez-les simplement dans le crochet principal de l'instruction if comme

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

Logiquement, cela peut aussi être réécrit d'une meilleure manière! Cela a exactement la même signification

if (Type == 2 && (PageCount == 0 || PageCount == '')) {

1
Concur. N'avait pas non plus de parenthèse ouvrante pour le conditionnel. Cela n'aurait pas pu aider.
Tass

26

Voici une autre façon de faire cela.

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}

Ou ES6

if (!conditionsArray.includes(false)) {
   "do somthing"
}

19

Je vérifie actuellement un grand nombre de conditions, ce qui devient compliqué en utilisant la méthode de l'instruction if au-delà de 4 conditions. Juste pour partager une alternative propre aux futurs téléspectateurs ... qui évolue bien, j'utilise:

var a = 0;
var b = 0;

a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc

if(a == b) {
    //do stuff
}

1
Je ne vois aucun commentaire indiquant que cette pratique est imprudente, donc je pense que c'est sûr à utiliser. Merci!
CousinCocaine

2
Il convient de noter et de mentionner que cela ne fonctionne que si toutes les conditions doivent être évaluées à vrai. En d'autres termes, c'est une autre façon d'écrire ANDmais pas OR.
Mark Kramer

6

le tout ifdoit être mis entre crochets et l' oropérateur est ||un non !!, donc

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...

6

Parfois, vous pouvez trouver des astuces pour combiner davantage les déclarations.

Comme par exemple:

0 + 0 = 0

et

"" + 0 = 0

donc

PageCount == 0
PageCount == ''

peut être écrit comme:

PageCount+0 == 0

En javascript, 0c'est aussi bien falsequ'inverser !ça tournerait0 entrue

!PageCount+0

pour un total général de:

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;

C'est si vous voulez rendre votre code aussi court que possible mais cela va à l'encontre de nombreuses bonnes pratiques. Gardez votre code lisible. Cette réponse est cryptique et incitera la prochaine personne qui regarde votre code à faire une erreur.
belvederef

4
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {

        PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

Cela pourrait être l'une des solutions possibles, donc "ou" est || ne pas !!


3

Enveloppez-les dans une paire de parens supplémentaire et vous êtes prêt à partir.

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

-1
function go(type, pageCount) {
    if ((type == 2 && pageCount == 0) || (type == 2 && pageCount == '')) {
        pageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
    }
}

Veuillez mettre votre code en retrait, ne répondez pas non plus aux questions si vous n'êtes pas assez confiant.
Harshit
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.