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

Применение различий к списку

Условие

reconcile(oldKeys, newKeys) возвращает список операций: { type: 'remove', key }, { type: 'insert', key, index }, { type: 'move', key, index }. Элементы сопоставляются по ключу.

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

  • без изменений

  • удаление

  • вставка

  • перестановка

  • вставка в начало

  • смешанный случай

Как подойти

Упрощённая версия согласования списков в React. Главная идея - ключи: без них единственная стратегия это сравнение по позиции, и любая вставка в начало приводит к перерисовке всего хвоста. Модель current, изменяемая по ходу, нужна, чтобы индексы операций были корректны на момент применения, а не относительно исходного массива.

Подсказки: 3
  1. Сначала убери то, чего больше нет - дальше индексы считать проще.
  2. Веди модель текущего порядка и применяй к ней собственные операции.
  3. Элемент на своём месте трогать не нужно.

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

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