Действительно ли JavaScript для гнезда if/else в коммутаторе?

Это действительно?

switch(foo) {
    case 'bar':
    if(raz == 'something') {
        // execute
    } else {
        // do something else
    }
    break;
    ...
    default:
    // yada yada
}

Ответ 2

Вы можете комбинировать switch и if в лучшем виде, если вам действительно нужно:

switch (true) {
    case (foo === 'bar' && raz === 'something'):
        // execute
        break;
    case (foo === 'bar'):
        // do something else
        break;
    default:
        // yada yada
}

Извините, что возобновил такое старое сообщение, но может помочь людям, которые пришли сюда посмотреть, как объединить или вложить оператор switch и if.

Ответ 3

и вы также можете использовать ternary if, заключенный в оператор return

   switch(foo) {
        case 'bar':
          return(
            (raz == 'something') ? 
              // excute
            : 
              // do something else
          )
        break;
        ...
        default:
        // yada yada
    }