No puedo explicarlo mucho en el título, pero ahora tengo que probar 2 variables por el mismo valor y me preguntaba si hay alguna manera de hacer algo como esto. var a = 'abc';
var b = 'def'; if (a=='abc' || b=='abc'){ c = 'z'; }
Ahora c es la variable que se probó como verdadera, por lo que al asignar a valor a c asignaría el valor a la variable que se probó como verdadera en la declaración if. a y b pueden tener valores diferentes pero ambos también pueden tener el mismo valor.
No, la expresión solo arroja un valor de resultado, sin información almacenada sobre qué subexpresión era verdadera. (Y por separado, JavaScript no tiene referencias a variables [al menos, no que pueda usar en su código].) Tendrá que dividirlo en dos if s:
if (a === "abc") { a = "z"; } else if (b === "abc") { b = "z"; } Sería posible hacer algo como esto si las variables fueran propiedades de acceso (u otras llamadas a funciones) con efectos secundarios (ya que el operando de la derecha de || no se evaluará en absoluto si el operando de la izquierda se evalúa como un valor verdadero). O si fueran propiedades en un objeto y probaras una matriz de nombres de propiedades, etc. Pero sería innecesariamente complicado. :-)
Puede tomar una declaración de switch , aquí puede verificar varias variables contra un cierto valor.
switch ('abc') { case a: a = 'z'; break; case b: b = 'z'; break; }