Чемпионат по шагам
Условие
Массив дней, в каждом - записи { userId, steps }. Найди userId участников с наибольшей суммой шагов за все дни, при этом не пропустивших ни одного дня. Верни { userIds, steps }; если чемпионов нет - { userIds: [], steps: 0 }.
Что проверяют тесты
пропустивший день не чемпион
несколько чемпионов
никто не прошёл все дни
один день
идентификаторы остаются числами
Как подойти
Один проход по всем записям с накоплением пары «сумма, дни», затем фильтр по полноте участия и выбор максимума. Ловушка, на которой валятся: объект вместо Map превращает числовые идентификаторы в строки, и userIds приходит как ['2'] вместо [2]. Второй момент - сначала фильтровать по дням, потом искать максимум: иначе чемпионом станет пропустивший день лидер.
Подсказки: 3
- Считай сумму и количество дней в одном проходе.
- Условие «не пропустил ни дня» - количество дней равно длине входа.
- Map, а не объект: userId числовой и в объекте станет строкой.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.