¿Cómo usar la condición OR en una declaración IF de JavaScript?

108

Entiendo que en JavaScript puedes escribir:

if (A && B) { do something }

Pero, ¿cómo implemento un OR como:

if (A OR B) { do something }
microondas
fuente
2
Por cierto, esto no es específico de jQuery. Es solo una biblioteca de Javascript. Su pregunta es específica de Javascript.
BalusC
2
@BalusC son prácticamente sinónimos en estos días: P
Dolbz
1
@Dolbz pfooo en desacuerdo !! : P
web-stars
1
@ web-stars ha cambiado mucho desde 2010 :)
Dolbz
@Dolbz mmm, oops ...: P Y todavía no sé nada desde 2010.
web-stars

Respuestas:

84

Vale la pena señalar que ||también volverá truesi AMBOS Ay lo Bson true.

En JavaScript, si está buscando Ao B, pero no ambos , deberá hacer algo similar a:

if( (A && !B) || (B && !A) ) { ... }
usuario113716
fuente
¿No debería ser la primera frase "Vale la pena señalar que || devolverá verdadero si YA var A O var B es verdadero"? Implica que lo que mencionaste es (verdadero | verdadero) = verdadero. que es común y entendido.
Punith Raj
10
(A &&! B) || (B &&! A) se puede reemplazar con A ^ B, que es mucho más suave
1
@Murplyx: En la mayoría de los casos, sí, pero los números fuera del rango de 32 bits pueden fallar. (Math.pow(2,32)-1) ^ 0; // -1 (success)...Math.pow(2,32) ^ 0; // 0 (failure)
if (A ? !B : B) {...sería un sustituto más corto que no tendría la limitación de 32 bits. O tal vezif (!A != !B) {...
1
@squint ¿Por qué un verdadero o falso alguna vez estaría fuera del rango de 32 bits? Por lo tanto, son solo 0 o 1, y por cierto, si compara números, use !! n para obtener el valor booleano.
13
if (A || B) { do something }
Dolbz
fuente
11

|| es el operador or.

if(A || B){ do something }
rosscj2533
fuente
9

aquí está mi ejemplo:

if(userAnswer==="Yes"||"yes"||"YeS"){
 console.log("Too Bad!");   
}

Esto dice que si la respuesta es Sí, sí o Sí, ocurrirá lo mismo.

Dyljam1234
fuente
1
¿Su respuesta mejora alguna respuesta existente? ¿Es un caso de uso específico?
emecas
¿Funciona? Codifico así, pero es un error de sintaxis. Codifico así. if (name === 'Jam' || name === 'Jem' || name == 'Jum')
Pingüino
7
Sí, descubrí por las malas que tienes que incluir cada declaración por separado. Me di cuenta de que if (number === 1||2||3)es como while (true); la segunda y tercera condiciones preguntan si 2 es 2 y / o 3 es 3. Siempre se resuelven como verdaderas a la afirmación siempre pasa. Ahí va mi plan para reducir el número de personajes. Sin embargo, mantener las declaraciones entre paréntesis facilita la lectura.
TimSmith-Aardwolf
3
Es mucho mejor usar .toLowerCase () en lugar de tener que verificar todas las variantes de casos diferentes.
AquaAlex
1
var choice = prompt ("¿Eliges piedra, papel o tijeras?"). toLowerCase (); if (userChoice! = ("paper" || "rock" || "scissors")) {console.log ("Elección no válida hecha"); }
AquaAlex
1

También se pueden usar expresiones regulares :

var thingToTest = "B";
if (/A|B/.test(thingToTest)) alert("Do something!")

Aquí tienes un ejemplo de expresiones regulares en general:

var myString = "This is my search subject"
if (/my/.test(myString)) alert("Do something here!")

Esto buscará "my" dentro de la variable "myString". Puede sustituir una cadena directamente en lugar de la variable "myString".

Como ventaja adicional, puede agregar la "i" que no distingue entre mayúsculas y minúsculas y la "g" global a la búsqueda también.

var myString = "This is my search subject"
if (/my/ig.test(myString)) alert("Do something here");

jgshawkey
fuente
Interesante. ¿Documentación?
Ken Sharp
0

Se necesita más de una declaración de condición para usar el OR(||)operador en if condiciones y notación ||.

if(condition || condition){ 
   some stuff
}
KARTHIKEYAN.A
fuente
1
¿Por qué está respondiendo preguntas antiguas con exactamente la misma respuesta?
Ken Sharp
0

Puedes usar Me gusta

if(condition1 || condition2 || condition3 || ..........)
{       
     enter code here
}
Abhilash Reddy
fuente
1
¿Por qué está respondiendo preguntas antiguas con exactamente la misma respuesta?
Ken Sharp
0

Si vamos a mencionar expresiones regulares, también podríamos mencionar la switchdeclaración .

var expr = 'Papayas';
switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas': // Mangoes or papayas
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}

Usuario que no es usuario
fuente
-1

Solo usa ||

if (A || B) { your action here }

Nota: con cuerda y número. Es mas complicado.

Compruebe esto para una comprensión profunda:

haotang
fuente
7
Esta pregunta fue respondida hace cuatro años. ¿Su respuesta mejora alguna respuesta existente?
Frambot
@JoeFrambach: No, sólo quiero hacer una respuesta más clara :)
haotang