@spasiboivanu
frontend engineer at Sber.Tech

Чем заменить однотипные else if?

Есть код:
const path = url.pathname; // "/shop/goods/{guid}/{guid}/write"
if (path.startsWith("/shop/goods")) { 
  ...
} else if (path.startsWith("/shop/union")) {
  ...
} else if (path.startsWith("/docs/tech")) {
  ...
} else if (path.startsWith("/docs/goods")) {
... еще пару таких условий


Как это можно переиграть и заменить, не нравится громоздкие else if else if

Изначально делал так:
const parts = url.pathname.split("/");
const routePrefix = `${parts[0]}/${parts[1]}`;

switch(routePrefix) {
  case "/shop/goods": 
    ...
  break;
  тут остальные
}


Но показалось излишне сплитить строку и собирать префикс, но так конечно выглядит и читается лучше.
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
al77ex
@al77ex
FullStack Developer
Как вариант создать массив строк с из путей. Потом его перебрать а внутри массива всего одно условие if по которому изменить какой-то флажек.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы