Javascript 算法页面链接
我正在尝试根据此解决方案确定分页: 我从来没有真正做过复杂的逻辑,所以我很难理解它。这是我的代码:Javascript 算法页面链接,javascript,algorithm,pagination,typescript,Javascript,Algorithm,Pagination,Typescript,我正在尝试根据此解决方案确定分页: 我从来没有真正做过复杂的逻辑,所以我很难理解它。这是我的代码: var allPages = 50; var current = 16; var pageLinks = []; function updatePageLinks(current, allPages) { if (current > 1) { pageLinks.push('<', 1); }
var allPages = 50;
var current = 16;
var pageLinks = [];
function updatePageLinks(current, allPages) {
if (current > 1) {
pageLinks.push('<', 1);
}
if (current > 2) {
pageLinks.push('...');
if (current == allPages && allPages > 3) {
pageLinks.push((current - 2), (current - 1));
}
}
if (current != 1 && current != allPages) {
pageLinks.push(current);
}
if (current < allPages - 1) {
pageLinks.push((current + 1), (current + 2), '...');
if (current == 1 && allPages > 3) {
pageLinks.push((current + 2), '...');
}
}
pageLinks.push(allPages);
if (current < allPages) {
pageLinks.push('>');
}
$('#pages').append("<a href='#'> " + pageLinks + '</a>');
}
var allPages=50;
无功电流=16;
var pageLinks=[];
函数updatePageLinks(当前,所有页面){
如果(当前>1){
页面链接。推送(“”);
}
$(“#页”)。追加(“);
}
我将从应用程序的另一部分加载页码,但目前我只是设置页码,以便测试不同的边缘情况。
上面的当前页面是16页,总页面是50页,因此我希望输出类似于:
其中前2页和最后2页始终显示,当前页+和-1
问题的例子:
有人能帮我吗?我使用您链接的数据库中的最后一个算法更新了您的代码
updatePageLinks(16, 50);
function print(value) {
$('#pages').append("<a href='#'>"+value+"</a> ");
}
function updatePageLinks(current, allPages) {
if(allPages==0) return;
if(current>1)print("<");
print(1);
if(current>2) {
print("...");
if(current===allPages&&allPages>3)
print(current-2);
print(current-1);
}
if(current!=1&¤t!=allPages)
print(current);
if(current<allPages-1) {
print(current+1);
if(current==1&&allPages>3)
print(current+2);
print("...");
}
print(allPages);
if(current<allPages)
print(">");
}
updatePageLinks(16,50);
函数打印(值){
$(“#页”)。追加(“”);
}
函数updatePageLinks(当前,所有页面){
如果(allPages==0)返回;
如果(当前>1)打印(“我使用链接中的最后一个算法更新了代码
updatePageLinks(16, 50);
function print(value) {
$('#pages').append("<a href='#'>"+value+"</a> ");
}
function updatePageLinks(current, allPages) {
if(allPages==0) return;
if(current>1)print("<");
print(1);
if(current>2) {
print("...");
if(current===allPages&&allPages>3)
print(current-2);
print(current-1);
}
if(current!=1&¤t!=allPages)
print(current);
if(current<allPages-1) {
print(current+1);
if(current==1&&allPages>3)
print(current+2);
print("...");
}
print(allPages);
if(current<allPages)
print(">");
}
updatePageLinks(16,50);
函数打印(值){
$(“#页”)。追加(“”);
}
函数updatePageLinks(当前,所有页面){
如果(allPages==0)返回;
如果(当前>1)打印(“您的算法似乎与链接的算法不匹配PrintPageLinksFinalRealy
。您的算法似乎与链接的算法不匹配PrintPageLinksFinalRealy
。非常简洁明了的解决方案您的解决方案有缺陷,只需像这样调用updatePageLinks
。updatePageLinks(3,5)
非常简洁明了的解决方案您的解决方案有bug,只需像这样调用updatePageLinks
:updatePageLinks(3,5)