Как бы вы использовали a, switch
case
когда вам нужно проверить a или b в одном и том же случае?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Как бы вы использовали a, switch
case
когда вам нужно проверить a или b в одном и том же случае?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Ответы:
Вы можете использовать провал:
источник
Поскольку другие ответы объяснили, как это сделать, не объяснив, почему это работает:
Когда
switch
выполняется, он находит первый соответствующийcase
оператор, а затем выполняет каждую строку кода после переключателя, пока не достигнет либоbreak
оператора, либо концаswitch
(илиreturn
оператора, чтобы покинуть всю содержащую функцию). Когда вы намеренно опускаетеbreak
так, чтобыcase
выполнялся также код под следующим, который называется провалом . Итак, для требования ОП:Забыть о включении
break
операторов - довольно распространенная ошибка в кодировании, и вы должны прежде всего искать ее, еслиswitch
она работает не так, как вы ожидали. По этой причине некоторые люди любят вставлять комментарий, чтобы сказать «провалиться», чтобы прояснить, когда операторы break были специально пропущены. Я делаю это в следующем примере, поскольку он немного сложнее и показывает, как некоторые случаи могут включать в себя код, выполняемый до того, как они провалится:Вы также можете (необязательно) включить
default
регистр, который будет выполнен, если ни один из других вариантов не совпадает - если вы не включитеdefault
и ни один случай не совпадет, то ничего не произойдет. Вы можете (опционально) перейти к случаю по умолчанию.Так что во втором примере, если
someVar
это 1, он будет вызывать,someFunction()
а затем вы увидите четыре предупреждения, поскольку оно проходит через несколько случаев, некоторые из которых имеют предупреждения под ними. ЭтоsomeVar
3, 4 или 5, вы увидите два оповещения. ЕслиsomeVar
это 7, вы увидите «Нечто другое», а если это 8 или любое другое значение, вы увидите «Конец».источник
Вам нужно сделать две
case
метки.Элемент управления будет переходить от первой метки ко второй, поэтому они оба будут выполнять один и тот же код.
источник
Вы должны переключить это!
источник
Забудьте
switch
иbreak
давайте играть сif
. И вместо того, чтобы утверждатьдавайте создадим несколько массивов с делами и проверим Array.prototype.include ()
источник
Используйте запятые для разделения регистра
источник