Код Middle Офлайн и хранение обновлено

Слияние записей по полям с версиями

Условие

Каждое поле записи хранит значение и время изменения: { title: { v: "Купить", t: 5 }, done: { v: false, t: 3 } }. Напишите mergeRecords(local, remote): для каждого поля из обеих записей берётся вариант с большим t; при равенстве побеждает remote (сервер). Поле, которое есть только в одной записи, берётся из неё. Вернуть новую запись с ключами в алфавитном порядке.

Примеры

mergeRecords({"title":{"v":"A","t":5}}, {"title":{"v":"B","t":3}}) // {"title":{"v":"A","t":5}}
mergeRecords({"title":{"v":"A","t":2}}, {"title":{"v":"B","t":3}}) // {"title":{"v":"B","t":3}}
mergeRecords({"title":{"v":"A","t":3}}, {"title":{"v":"B","t":3}}) // {"title":{"v":"B","t":3}}

Как подойти

Подсказки: 2
  1. Соберите множество ключей из обеих записей.
  2. Сравнение local.t > remote.t автоматически отдаёт равенство серверу.

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

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