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