Задать вопрос
@laravel_creative_3103

Что делать, если много условностей? ?? :: :, и как правильно его читать? Можно ли ссылку на статью какую нибудь?

isError ? !this.isEmpty(formData.error.decision.result) ? formData.error.decision.result ? 'errorTab' : 'noTab' : 'noTab' : 'noTab'


Условно есть такой код, условности, как бы его правильно прочитать? т.е последовательно
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Вложенные тернарники легко читаются, только если они "линейные". То есть когда в выражении C ? A : B выражение А не содержит в себе тернарник.

Твой пример можно переписать так:
!isError ? 'noTab' :
    this.isEmpty(formData.error.decision.result) ? 'noTab' :
    !formData.error.decision.result ? 'noTab' :
    'errorTab' ;


я просто инвертировал все условия. И теперь тернарник читается строго по порядку: если первое условие истинно, вернуть первое значение и не смотреть дельше. Если второе условие истинно, вернуть второе значение и не смотреть дельше. И т.д. Аналог "быстрого выхода", как в https://qna.habr.com/q/1289362
Сравни это с исходным вариантом, где самое последнее значение относилось к первому условию, хотя отстояло от него на километр.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект
22 дек. 2024, в 19:47
3000 руб./за проект