Код Junior Отладка и профилирование обновлено
Подсчёт пропущенных кадров
Условие
Профилировщик записал метки времени отрисованных кадров в миллисекундах. Напишите frameStats(timestamps, fps): целевой интервал 1000 / fps. Для каждого промежутка между соседними метками число пропущенных кадров равно Math.max(0, Math.round(gap / interval) - 1). Вернуть { frames, dropped, worstGap }: число кадров (длина массива), сумму пропущенных и самый большой промежуток (0, если промежутков нет).
Примеры
frameStats([0, 17, 33, 50], 60) // {"frames":4,"dropped":0,"worstGap":17}
frameStats([0, 50], 60) // {"frames":2,"dropped":2,"worstGap":50}
frameStats([0, 16, 33, 150, 166], 60) // {"frames":5,"dropped":6,"worstGap":117}
Как подойти
Подсказки: 2
- Интервал кадра:
1000 / fps. - Округление
Math.round(gap / interval)даёт, сколько интервалов уместилось в промежуток.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.