¿Cómo utilizaría una switch
case
cuando se necesita prueba para una o B en el mismo caso?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
¿Cómo utilizaría una switch
case
cuando se necesita prueba para una o B en el mismo caso?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Respuestas:
Puede usar la caída:
fuente
Como las otras respuestas explicaron cómo hacerlo sin explicar realmente por qué funciona:
Cuando se
switch
ejecuta, encuentra la primeracase
declaración coincidente y luego ejecuta cada línea de código después del cambio hasta que llega a unabreak
declaración o al final de laswitch
(o unareturn
declaración para dejar toda la función que contiene). Cuando omites deliberadamente elbreak
código para que el siguientecase
se ejecute también se llama falla . Entonces, para el requisito del OP:Olvidar incluir
break
declaraciones es un error de codificación bastante común y es lo primero que debe buscar siswitch
no funciona de la manera esperada. Por esa razón, a algunas personas les gusta hacer un comentario para decir "no cumplir" para dejar en claro cuándo se han omitido intencionalmente las declaraciones de ruptura. Lo hago en el siguiente ejemplo, ya que es un poco más complicado y muestra cómo algunos casos pueden incluir código para ejecutar antes de caer:También puede (opcionalmente) incluir un
default
caso, que se ejecutará si ninguno de los otros casos coincide: si no incluye un casodefault
y ninguno coincide, entonces no sucede nada. Puede (opcionalmente) pasar al caso predeterminado.Entonces, en mi segundo ejemplo, si
someVar
es 1, llamaríasomeFunction()
y luego vería cuatro alertas, ya que cae en varios casos, algunos de los cuales tienen alertas debajo de ellos. EssomeVar
3, 4 o 5 verías dos alertas. SisomeVar
es 7, vería "Algo más" y si es 8 o cualquier otro valor, vería "El final".fuente
Necesitas hacer dos
case
etiquetas.El control pasará de la primera etiqueta a la segunda, por lo que ambos ejecutarán el mismo código.
fuente
Tienes que cambiarlo!
fuente
Olvídate
switch
ybreak
, juguemos conif
. Y en lugar de afirmarvamos a crear varias matrices con casos y verificarlo con Array.prototype.includes ()
fuente
Usa comas para separar las mayúsculas y minúsculas
fuente