Код Middle API-автотесты обновлено
Обход пагинации по курсору
Условие
API отдаёт список постранично. pages это объект «курсор → { items, next }», где next курсор следующей страницы или null. Напишите collectPages(pages, start):
- идти от
startпоnext, собираяitemsпо порядку; - если курсор уже встречался, остановиться и вернуть
{ items, error: "loop" }; - если курсора нет в
pages, вернуть{ items, error: "missing:<курсор>" }; - иначе
{ items, error: null }.
Примеры
collectPages({"p1":{"items":[1,2],"next":"p2"},"p2":{"items":[3],"next":null}}, "p1") // {"items":[1,2,3],"error":null}
collectPages({"a":{"items":[1],"next":"b"},"b":{"items":[2],"next":"a"}}, "a") // {"items":[1,2],"error":"loop"}
collectPages({"a":{"items":[1],"next":"zz"}}, "a") // {"items":[1],"error":"missing:zz"}
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.