Cómo especificar múltiples condiciones en una declaración if en javascript


87

Así es como menciono dos condiciones si esto o esto

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

Respuestas:


154

solo agréguelos dentro del corchete principal de la declaración if como

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

¡Lógicamente, esto también se puede reescribir de una mejor manera! Esto tiene exactamente el mismo significado

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

1
Concurrir. Tampoco tenía un corchete de apertura para el condicional. Eso no pudo haber ayudado.
Tass

26

Aquí hay una forma alternativa de hacerlo.

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

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

O ES6

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

19

Actualmente estoy verificando una gran cantidad de condiciones, lo que se vuelve difícil de manejar usando el método de declaración if más allá de, digamos, 4 condiciones. Solo para compartir una alternativa de apariencia limpia para futuros espectadores ... que escala muy bien, uso:

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
No veo comentarios de que esta es una práctica imprudente, por lo que creo que es conveniente usarla. ¡Gracias!
CousinCocaine

2
Vale la pena señalar y mencionar que esto solo funciona si todas las condiciones deben evaluarse como verdaderas. En otras palabras, esta es otra forma de escribir, ANDpero no OR.
Mark Kramer

6

el conjunto ifdebe estar entre paréntesis y el oroperador es ||un no !!, por lo que

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

6

A veces puedes encontrar trucos para combinar aún más las declaraciones.

Como por ejemplo:

0 + 0 = 0

y

"" + 0 = 0

entonces

PageCount == 0
PageCount == ''

se puede escribir como:

PageCount+0 == 0

En javascript 0es tan bueno como falseinvertirlo !se convertiría 0entrue

!PageCount+0

para un gran total de:

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

Esto es así si desea que su código sea lo más corto posible, pero va en contra de muchas buenas prácticas. Mantenga su código legible. Esta respuesta es críptica e inducirá a la próxima persona que mire su código a cometer algún error.
belvederef

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

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

Esta podría ser una de las posibles soluciones, por lo que 'o' es || no !!


3

Envuélvalos en un par de parens extra y listo.

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;
    }
}

Por favor, sangra el código y no responda preguntas si no tiene la suficiente confianza.
Harshit
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.