// total 总数
// size 条数
// page 页码
// butCount 数组长度
function fn(total, size, page, btnCount) {
let arr = new Array(btnCount).fill(1) // 初始化一个数组
const sum = Math.ceil(total / size) // 总页数
const zj = Math.ceil(btnCount / 2) // 临界值
// console.log(sum)
// 分三种情况
// 1. page < 3
// 2. page > 3
// 3. page > sum - 2
if (page <= zj) {
// 小于临界值
let x = 0
arr = arr = arr.map((item) => {
console.log(x)
x++
return (item = x)
})
} else if (page > sum - zj) {
// 大于临界值
let x = sum + 1
arr = arr = arr
.map((item) => {
console.log(x)
x--
return (item = x)
})
.reverse()
} else if (page > zj && page <= sum - zj + 1) {
let x = page - zj
arr = arr = arr.map((item) => {
console.log(x)
x++
return (item = x)
})
}
return arr
}
复制代码
console.log(fn(100, 10, 1, 5)) // ==> [1, 2, 3, 4, 5]
console.log(fn(100, 10, 7, 5)) // ==> [5, 6, 7, 8, 9]
console.log(fn(100, 10, 2, 5)) // ==> [1, 2, 3, 4, 5]
console.log(fn(100, 10, 5, 5)) // ==> [3, 4, 5, 6, 7]
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END