Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Metadata phân trang

    Metadata phân trang

    Một API phân trang tốt thường trả kèm metadata để client biết trạng thái. Cho mảng items, page (từ 1), perPage, hãy in ra một object JSON gồm:

    • total: tổng số phần tử
    • page: trang hiện tại
    • perPage: số phần tử mỗi trang
    • totalPages: tổng số trang (ceil(total/perPage))
    • hasNext: còn trang sau không (boolean)
    • hasPrev: còn trang trước không (boolean)
    • data: mảng phần tử của trang hiện tại

    Ví dụ

    items=[1,2,3,4,5], page=1, perPage=2 → totalPages=3, hasNext=true, hasPrev=false, data=[1,2].

    • Định dạng đầu vào:

      Dòng 1: JSON mảng items. Dòng 2: số nguyên page. Dòng 3: số nguyên perPage.

    • Ràng buộc đầu vào:

      0 ≤ độ dài items ≤ 1000; 1 ≤ page; 1 ≤ perPage ≤ 1000.

    • Định dạng đầu ra:

      In ra một object JSON với các khóa theo đúng thứ tự: total, page, perPage, totalPages, hasNext, hasPrev, data.

    Ví dụ:

    Đầu vào:

    [1,2,3,4,5]
    1
    2
    

    Đầu ra:

    {"total":5,"page":1,"perPage":2,"totalPages":3,"hasNext":true,"hasPrev":false,"data":[1,2]}

    Giải thích:

    total=5, totalPages=ceil(5/2)=3, hasNext=true (1<3), hasPrev=false, data=[1,2].

    Đang tải editor...