@Mishcake

Что использовать для сокращения кода с проверкой условий?

Привет.

У меня в ТЗ указано сделать ветвистую проверку с последующими действиями на странице заказа. Что имею в наличии:
  • параметр в адресной строке с именем сотрудника
  • 6 отдельных позиций для заказа
  • 5 имён сотрудников
  • 2 радио-переключателя


Какая логика нужна:
  • если в адресной строке передан параметр с именем сотрудника => выбрать его из выпадающего списка
  • если в адресной строке передан параметр с именем И выбран переключатель №1 => выбрать сотрудника из списка и выбрать позицию для заказа X (общая для всех)
  • если в адресной строке передан параметр с именем И выбран переключатель №2 => выбрать сотрудника из списка и выбрать позицию для заказа Y (для каждого сотрудника своя позиция)
  • проверка со звёздочкой: если в адресной строке передан параметр с именем ИЛИ пользователь сам выбрал из выпадающего списка сотрудника И выбран переключатель №2 => отправить запрос по АПИ и если вернётся true, то выбрать позицию для заказа Y (для каждого сотрудника своя позиция); если вернётся false, то вывести поп-ап, выбрать переключатель №1 и вывести текст-предупреждение под переключателем (при этом запомнить этот момент, чтобы при попытке пользователем всё равно выбрать переключатель №2 не отправлять запрос и не менять переключатель, а то пользователь сойдёт с ума)


У меня получается огромное нагромождение из if else, которое я реализовал для проверки 1 сотрудника и постепенно начинаю во всём этом путаться.

Что можно использовать для упрощения реализации этой логики?

Я недавно начал изучал JS, поэтому не могу пока быстро придумать варианты решения, прошу помощи.

Как вариант, на ум приходят массивы или json-объекты, в которые я добавляю имена сотрудников через ключ : значение. По моему, в json можно сделать так, чтобы был один ключ worker и у него массив из значений.

Но, возможно, это лишь мои догадки. Прошу меня направить (:

P.S. Реализация возможна как на ванильном JS, так и на jQuery.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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