代码如下:
// 创建分页组件需要的 按钮数组
// btnCount: 最多能看到几个按钮
// total: 总条数
// size: 每页几条
// page: 当前第几页
function a(total, size, page, btnCount = 5) {
// pageNum是总页数
let pageNum = Math.ceil(total / size)
// console.log(pageNum)
// arr用于存放返回的页码
let arr = []
arr.push(page)
// pre表示上一页页码,next表示下一页页码
let pre = page,
next = page
// 如果返回的页码的数组小于最多能看到的按钮数,就向数组中插入页码
while (arr.length < btnCount) {
// 页码数不能小于1
if (pre > 1) {
arr.unshift(--pre)
}
// 页码数不能超过总页数
if (next < pageNum) {
arr.push(++next)
}
}
return arr
}
console.log(a(100, 10, 1, 5))
console.log(a(100, 10, 7, 5))
console.log(a(100, 10, 2, 5))
console.log(a(100, 10, 5, 5))
没有注释的代码:
// 创建分页组件需要的 按钮数组
// btnCount: 最多能看到几个按钮
// total: 总条数
// size: 每页几条
// page: 当前第几页
function a(total, size, page, btnCount = 5) {
let pageNum = Math.ceil(total / size)
let arr = []
arr.push(page)
let pre = page,
next = page
while (arr.length < btnCount) {
if (pre > 1) {
arr.unshift(--pre)
}
if (next < pageNum) {
arr.push(++next)
}
}
return arr
}
console.log(a(100, 10, 1, 5))
console.log(a(100, 10, 7, 5))
console.log(a(100, 10, 2, 5))
console.log(a(100, 10, 5, 5))
来看一下效果: