Используйте ранние возвраты для отрицательных условий и оставьте основной сценарий в конце. Сохраните порядок проверок и точные условия каждой ошибки.
Как упростить функцию с вложенными проверками
Используйте ранние возвраты для отрицательных условий и оставьте основной сценарий в конце. Сохраните порядок проверок и точные условия каждой ошибки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция проверяет пользователя, затем активность, затем разрешение, после чего выполняет действие. На каждой неудаче возвращает свой код ошибки. Как сократить вложенность, сохранив поведение?
Ответ
Используйте ранние возвраты для отрицательных условий и оставьте основной сценарий в конце. Сохраните порядок проверок и точные условия каждой ошибки.
Пример структуры: if (!user) return 'not_found'; if (!user.active) return 'inactive'; if (!canRun(user)) return 'forbidden'; return run(user);. Не объединяйте проверки, если меняется приоритет ошибок или вызов функции имеет побочный эффект. Сначала зафиксируйте текущие ветки небольшими примерами, затем меняйте структуру.