Возвращайте найденного пользователя либо явное отсутствие, а не случайную первую запись. Обработку отсутствия перенесите в вызывающий код и добавьте граничные проверки.
Как провести ревью функции поиска пользователя
Возвращайте найденного пользователя либо явное отсутствие, а не случайную первую запись. Обработку отсутствия перенесите в вызывающий код и добавьте граничные проверки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция findUser(users, id) ищет пользователя циклом, а если не находит — молча возвращает первого. При пустом массиве дальнейший код падает. Что исправить в контракте?
Ответ
Возвращайте найденного пользователя либо явное отсутствие, а не случайную первую запись. Обработку отсутствия перенесите в вызывающий код и добавьте граничные проверки.
Простая реализация — return users.find(user => user.id === id). Согласуйте тип ID, чтобы не полагаться на неявное приведение. Вызывающий код должен обработать undefined до чтения полей. Проверьте пустой массив, существующий и отсутствующий ID. Если поиск частый на большом наборе, можно построить Map, но это отдельное решение по измеренной нагрузке.