¿Cómo utilizaría una switch casecuando 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 casecuando 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
switchejecuta, encuentra la primeracasedeclaración coincidente y luego ejecuta cada línea de código después del cambio hasta que llega a unabreakdeclaración o al final de laswitch(o unareturndeclaración para dejar toda la función que contiene). Cuando omites deliberadamente elbreakcódigo para que el siguientecasese ejecute también se llama falla . Entonces, para el requisito del OP:Olvidar incluir
breakdeclaraciones es un error de codificación bastante común y es lo primero que debe buscar siswitchno 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
defaultcaso, que se ejecutará si ninguno de los otros casos coincide: si no incluye un casodefaulty ninguno coincide, entonces no sucede nada. Puede (opcionalmente) pasar al caso predeterminado.Entonces, en mi segundo ejemplo, si
someVares 1, llamaríasomeFunction()y luego vería cuatro alertas, ya que cae en varios casos, algunos de los cuales tienen alertas debajo de ellos. EssomeVar3, 4 o 5 verías dos alertas. SisomeVares 7, vería "Algo más" y si es 8 o cualquier otro valor, vería "El final".fuente
Necesitas hacer dos
caseetiquetas.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
switchybreak, 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