Cursor pagination không dùng số trang mà dùng một con trỏ (cursor) — thường là id của phần tử cuối trang trước. Trang kế tiếp gồm các phần tử có id lớn hơn cursor.
Cho danh sách bản ghi { "id":..., "name":... } (id duy nhất, không nhất thiết sắp xếp), một cursor (id) và limit. Hãy:
id tăng dần.id > cursor, tối đa limit phần tử.{ "items": [...], "nextCursor": <id cuối cùng lấy được hoặc null> }.Nếu cursor < 0 nghĩa là lấy từ đầu. Nếu không còn phần tử, nextCursor là null.
Bản ghi id = [1,2,3,4], cursor=2, limit=2 → lấy id 3,4 → nextCursor=4.
Dòng 1: JSON mảng bản ghi, mỗi bản ghi có khóa id (số) và name (chuỗi).
Dòng 2: số nguyên cursor.
Dòng 3: số nguyên limit.
0 ≤ số bản ghi ≤ 1000; id là số nguyên duy nhất; 1 ≤ limit ≤ 1000; cursor là số nguyên.
In object JSON { "items": [...], "nextCursor": ... }. items giữ nguyên cấu trúc bản ghi, đã sắp theo id tăng dần.
Ví dụ:
Đầu vào:
[{"id":3,"name":"c"},{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":4,"name":"d"}]
2
2
Đầu ra:
{"items":[{"id":3,"name":"c"},{"id":4,"name":"d"}],"nextCursor":4}Giải thích:
Đang tải editor...