Чем заменить switch в JavaScript

Старый, добрый switch…case. Кто-то его любит и вовсю использует в проектах, а кто-то считает устаревшим и всеми правдами-неправдами избавляется от него в своем коде.

Итак, если вы принадлежите ко второй группе, то предлагаю рассмотреть несложную альтернативу конструкции switch.

Начну, собственно, с того, что предлагает нам JavaScript «по умолчанию»:

const mode = 1; 
switch (mode) {
  case 1:
    console.log('Mode = 1');
    break;
  case 2:
     console.log('Mode = 2'); 
    break;
  default:
    console.log('Mode error');
}

В зависимости от содержимого переменной mode будет выполняться соответствующий case конструкции. Достигнув break, switch завершит свою работу. Если переменная в аргументе switch не равна любому кейсу, то выполнится блок default.

Имитацию switch можно реализовать с помощью обычного объекта JavaScript и сделать это довольно элегантно. Код ниже демонстрирует пример в новом облике:

const switcher = {
   1 : function () {
     console.log('Mode = 1');
   },
   2 : function () {
     console.log('Mode = 1');
   }
 }

Здесь отсутствует обработка default, но для простого переключателя такое решение работает превосходно.

Ах, да. Для запуска следует сделать так:

const mode = 1;
switcher[mode]();

В зависимости от значения mode, будет выполнена нужная функция из объекта switcher.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *