我正在尝试计算分页:
var pagination = {
total: result.length,
per_page: itemsPerPage, // required
current_page: currentPage, // required
last_page: users.length / itemsPerPage, // required
from: (itemsPerPage * pageNumber) + 1,
to: itemsPerPage * (pageNumber + 1) //required
};
假设结果长度为 2,itemsPerPage 为 5,currentPage 为 1,我得到了这个:
total: 2
per_page: 5
current_page: 1
last_page: 0.4
from: 6
to: 10
我觉得有些不对。
最佳答案
要取最大值,您可以使用 last_page
上的 Math.ceil
。
每页的项目可以是静态的,手动定义的。然后,from
可以是 ((currentPage - 1) * itemsPerPage) + 1
。
- 如果当前页为 1,则 ( (1 -1) * 5) + 1 = 1。
- 第二页:( (2 -1) * 5) + 1 = 6,依此类推。
那么它可以是currentPage * itemsPerPage
。例如,如果当前页为 1,则 1 * 5 = 5,如果是第二页,则为:2 * 5 = 10。请看下面的示例:
var pagination = {
total: result.length,
per_page: itemsPerPage,
current_page: currentPage,
last_page: Math.ceil(result.length / itemsPerPage),
from: ((currentPage -1) * itemsPerPage) + 1,
to: currentPage * itemsPerPage
};
Total = 15;
per_page = 5;
currentPage = 1;
last_page = truncate (15 / 5) = 3;
from: ((1-1) * 5) + 1 = 1 //first page
((2-1) * 5) + 1 = 6 //second page
to: 1 * 5 = 5 //first page
2 * 5 = 10 // second page
From 1 to 5 // first page
From 6 to 10 // second page
From 11 to 15 // last page
关于javascript - 分页计算算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670902/