Код Middle Реализация с нуля обновлено

Видимые элементы виртуального списка

Условие

По scrollTop, высоте контейнера, высоте строки и числу строк верни {start, end, offsetY} для рендера с буфером overscan строк.

Что проверяют тесты

  • начало списка

  • середина

  • не выходит за границы

Как подойти

Три величины: первый видимый индекс, количество видимых, буфер. Обязательно зажать в [0, total] и вернуть offsetY - смещение подложки. Это ядро виртуального списка, дальше разговор уходит в измерение динамических высот.

Подсказки: 2
  1. Первый видимый индекс - floor(scrollTop / rowHeight).
  2. Сдвиг контейнера равен start * rowHeight, иначе список будет прыгать.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.