Como você usaria a switch
case
quando precisar testar a ou b no mesmo caso?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Como você usaria a switch
case
quando precisar testar a ou b no mesmo caso?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Respostas:
Você pode usar o fall-through:
fonte
Como as outras respostas explicaram como fazê-lo sem realmente explicar por que funciona:
Quando o
switch
executa, localiza a primeiracase
instrução correspondente e, em seguida, executa cada linha de código após a opção até atingir umabreak
instrução ou o final daswitch
(ou umareturn
instrução para deixar toda a função que contém). Quando você omite deliberadamente obreak
código para que o código abaixocase
seja executado também, isso é chamado de falha . Portanto, para a exigência do OP:Esquecer de incluir
break
instruções é um erro de codificação bastante comum e é a primeira coisa que você deve procurar seswitch
não estiver funcionando da maneira esperada. Por esse motivo, algumas pessoas gostam de colocar um comentário para dizer "falhar" para deixar claro quando as declarações de quebra foram omitidas de propósito. Eu faço isso no exemplo a seguir, pois é um pouco mais complicado e mostra como alguns casos podem incluir código a ser executado antes que eles caiam:Você também pode (opcionalmente) incluir um
default
caso, que será executado se nenhum dos outros casos corresponder - se você não incluir umdefault
e nenhum caso corresponder, nada acontecerá. Você pode (opcionalmente) passar para o caso padrão.Portanto, no meu segundo exemplo, se
someVar
for 1, ele chamariasomeFunction()
e você veria quatro alertas, uma vez que ocorre em vários casos, alguns dos quais com alertas. ÉsomeVar
3, 4 ou 5, você verá dois alertas. SesomeVar
for 7, você verá "Algo mais" e, se for 8 ou qualquer outro valor, verá "O fim".fonte
Você precisa fazer dois
case
rótulos.O controle passará do primeiro rótulo para o segundo, para que ambos executem o mesmo código.
fonte
Você tem que mudar isso!
fonte
Esqueça
switch
ebreak
, vamos brincarif
. E em vez de afirmarvamos criar várias matrizes com casos e verificá-lo com Array.prototype.includes ()
fonte
Use vírgulas para separar maiúsculas e minúsculas
fonte