Как изменить selected при нажатии стрелки влево

При n > 0 новое значение равно (selected − 1 + n) % n. Для пустого списка переключение нужно отключить, чтобы не вычислять остаток от деления на ноль.

Короткий ответ

Что ответить на собеседовании

При n > 0 новое значение равно (selected − 1 + n) % n. Для пустого списка переключение нужно отключить, чтобы не вычислять остаток от деления на ноль.

Подробный разбор

Ответ с пояснениями

Условие

В карусели n элементов, selected — индекс от 0 до n−1. Стрелка влево должна циклически выбирать предыдущий элемент. Что делать для первого элемента и пустого списка?

Ответ

При n > 0 новое значение равно (selected − 1 + n) % n. Для пустого списка переключение нужно отключить, чтобы не вычислять остаток от деления на ноль.

В React используйте функциональное обновление: setSelected(previous => (previous - 1 + n) % n), предварительно проверив n > 0. Для n=5 переход из 0 даёт 4, из 3 — 2. Если список изменяется, дополнительно приводите выбранный индекс к допустимому диапазону или храните устойчивый ID.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее