We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
原文链接
编程,很重要的一个技能就是抽象能力,就是现实中的琐事,我怎么用代码来表示。
举例如下:
1
1 2 3 4 ... 110 下一页
2
上一页 1 2 3 4 5 ... 110 下一页
3
上一页 1 2 3 4 5 6 ... 110 下一页
4
上一页 1 2 3 4 5 6 7 ... 110 下一页
5
上一页 1 2 3 4 5 6 7 8 ... 110 下一页
6
上一页 1 ... 3 4 5 6 7 8 9 ... 110 下一页
100
上一页 1 ... 97 98 99 100 101 102 103 ... 110 下一页
109
上一页 1 ... 106 107 108 109 110 下一页
110
上一页 1 ... 106 107 108 109 110
不考虑超链接,我们可以将需求抽象出来。可以将这个需求简单成一个字符输出问题
要求:
page
total
可以考虑先定义一个函数showPage
showPage
function showPage(page, total){ }
过程:
function showPage(page, total){ var str = page; //首先记录传入的页码数字 for(var i = 1; i <= 3; i++){ if(page - i > 1){ //判断所传页码之前添加的页码数 str = page - i + ' ' + str; } if(page + i < total){ //判断所传页码之后添加的页码数 str = str + ' ' + (page+i); } } }
...
function showPage(page, total){ var str = page; //首先记录传入的页码数字 for(var i = 1; i <= 3; i++){ if(page - i > 1){ //判断所传页码之前添加的页码数 str = page - i + ' ' + str; } if(page + i < total){ //判断所传页码之后添加的页码数 str = str + ' ' + (page+i); } } if(page - 3 > 1){ //判断页码左边是否添加'...' str = '... ' + str; } if(page + 3 < total){ str = str + '... '; } return str; }
function showPage(page, total){ var str = page; //首先记录传入的页码数字 for(var i = 1; i <= 3; i++){ if(page - i > 1){ //判断所传页码之前添加的页码数 str = page - i + ' ' + str; } if(page + i < total){ //判断所传页码之后添加的页码数 str = str + ' ' + (page+i); } } if(page - 3 > 1){ //判断页码左边是否添加'...' str = '... ' + str; } if(page > 1) { str = '上一页 ' + '1 ' + str; } if(page + 3 < total){ str = str + '...'; } if(page < total){ str = str + ' ' + total + ' 下一页'; } return str; }
咦,看上去好了。但总感觉缺点什么~~~
哦,想起来了,我们忘记写测试用例了。那我们来一个简单粗暴的吧~
var total = 110; for(var i = 1; i <= total; i++){ var ret = showPage(i, total); console.log(ret); }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
原文链接
一、简单的分页需求
举例如下:
1
,那么显示1 2 3 4 ... 110 下一页
2
,那么显示上一页 1 2 3 4 5 ... 110 下一页
3
,那么显示上一页 1 2 3 4 5 6 ... 110 下一页
4
,那么显示上一页 1 2 3 4 5 6 7 ... 110 下一页
5
,那么显示上一页 1 2 3 4 5 6 7 8 ... 110 下一页
6
,那么显示上一页 1 ... 3 4 5 6 7 8 9 ... 110 下一页
100
,那么显示上一页 1 ... 97 98 99 100 101 102 103 ... 110 下一页
109
,那么显示上一页 1 ... 106 107 108 109 110 下一页
110
,那么显示上一页 1 ... 106 107 108 109 110
二、思路分析
不考虑超链接,我们可以将需求抽象出来。可以将这个需求简单成一个字符输出问题
要求:
page
以及总页数total
可以考虑先定义一个函数
showPage
过程:
...
咦,看上去好了。但总感觉缺点什么~~~
三、测试用例
哦,想起来了,我们忘记写测试用例了。那我们来一个简单粗暴的吧~
The text was updated successfully, but these errors were encountered: