662 votos

Instrucción Switch múltiples casos en JavaScript

Necesito varios casos en instrucción switch en JavaScript, Algo como:

switch (varName)
{
   case "afshin", "saeed", "larry": 
       alert('Hey');
       break;

   default: 
       alert('Default case');
       break;
}

¿Cómo puedo hacer eso? Si no hay manera de hacer algo como que en JavaScript, quiero saber una solución alternativa que también sigue SECA concepto.

1318voto

KennyTM Puntos 232647

El uso de la caída-a través de la función de la switch declaración. Un igualado caso se ejecutará hasta un break (o el final de la switch instrucción) se encuentra, por lo que podría escribir como:

switch (varName)
{
   case "afshin":
   case "saeed":
   case "larry": 
       alert('Hey');
       break;

   default: 
       alert('Default case');
       break;
}

42voto

elclanrs Puntos 40467

Aquí enfoque diferente evitar la switch declaración en total:

var cases = {
  afshin: function() { alert('hey'); },
  _default: function() { alert('default'); }
};
cases.larry = cases.saeed = cases.afshin;

cases[ varName ] ? cases[ varName ]() : cases._default();

16voto

Er. Anurag Jain Puntos 1188

En Js para asignar múltiples casos en cambiar Tenemos que definir different case without break como aparece a continuación:

   <script type="text/javascript">
      function checkHere(varName){
        switch (varName)
           {
           case "saeed":
           case "larry":
           case "afshin":
                alert('Hey');
                break;
          case "ss":
             alert('ss');
             break;
         default:
             alert('Default case');
             break;
       }
      }
     </script>

Por favor, vea ejemplo, haga clic en el enlace

12voto

ErikE Puntos 18233

Usted podría intentar esto:

if (['afshin', 'saeed', 'larry'].indexOf(varName) !== -1) {
   alert('Hey');
} else {
   alert('Default case');
}

Tenga en cuenta que esto no funcionará en mayores, es decir de los navegadores, pero usted podría arreglar las cosas con bastante facilidad. Ver la cuestión de determinar si la cadena está en la lista en javascript para más información.

5voto

ZEE Puntos 391

usted puede utilizar el 'en' operador...
se basa en el objeto/hash invocación...
así que así de rápido como javascript puede ser...

// assuming you have defined functions f(), g(a) and h(a,b) 
// somewhere in your code
// you can define them inside the object but... 
// the code becomes hard to read, I prefer this way

o = { f1:f, f2:g, f3:h };

// if you use "STATIC" code can do:
o['f3']( p1, p2 )

// if your code is someway "DYNAMIC", to prevent false invocations
// m brings the function/method to be invoked (f1, f2, f3)
// and you can rely on arguments[] to solve any parameter problems
if ( m in o ) o[m]()

Disfrutar, ZEE

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X