Javascript 前端分页——根据页面大小(pageSize)和总行数(total)计算总页面数(totalPage)

2023-12-13 04:58:53

分页时,根据页面大小(pageSize)和总行数(total),计算总页面数(totalPage)

一:总行数取余页面大小,等于0,则页数为整页数,否则有余数,则页数为正页数加一

 
 // 总行数取余页面大小,等于0,则页数为整页数,否则有余数,则页数为正页数加一
 const totalPage = (total % pageSize == 0) ? (total / pageSize) : (total / pageSize + 1)

二:总页数=(总数-1)/每页数量+1

// 总页数 =(总数 - 1)/ 每页数量 + 1
const totalPage = (total - 1) / pageSize + 1

三:总页数=(总数 + 每页数量 - 1)/ 每页数量?

// ?总页数=(总数+每页数量-1)/每页数量
const totalPage = (total + pageSize - 1) / pageSize

简述一下第三个是如何证明的:

1. 特殊情况total = 0时,为0页
2. total大于等于一页时:
????????2.1 整除的情况下:total / pageSize 满足
????????2.2 有余数的情况下,就多加一页: total / pageSize + 1 等价于 (total + pageSize) / pageSize
3. total小于页面大小时,为1页
????????3.1 当total = 1时,total需要再加上整数x,才够一页,即(total + x) / pageSize,x ∈ [pageSize - 1, 2(pageSize - 1)]
????????3.2 当total = pageSize - 1时,total需要再加上整数x,才够一页,即(total + x) / pageSize,x ∈ [1, pageSize]
为了满足情况3.1、3.2,二者取交集,所以total需要加上整数 x ∈ [pageSize - 1, pageSize]
如果x取pageSize,会影响情况2.1造成页数多一页,不会影响情况2.2,故舍去
又因为pageSize - 1为 total 除以 pageSize 的最大余数,对total大于等于一页的两种情况均不影响,所以x应取pageSize - 1


所以综上所述:总页数totalPage = (total + pageSize - 1) / pageSize,代入total=0时,为0页,满足,证明完毕!

total / pageSize + 1等价于(total + pageSize) / pageSize: 取整(/ 二元操作符)是一个整体和另一个整体进行运算,不可化简,此处等价于有前提条件。
(total + pageSize - 1) / pageSize 不可化简成 (total - 1) / pageSize + 1,因为此处是取整,不是除法。

四:使用Math.ceil()函数,进1法取整。Math.ceil(total / pageSize)

// 使用Math.ceil()函数,进1法取整
const totalPage = Math.ceil(total / pageSize)
Math.Ceiling(0.0) //0
Math.Ceiling(0.1) //1
Math.Ceiling(0.5) //1
Math.Ceiling(0.6) //1
Math.Ceiling(0.7) //1
Math.Ceiling(1.01) //2

引用:

【数据结构与算法】分页时,根据页面大小和总行数,计算总页面数(含推理过程)_分页查询计算总页数_debug4flaw的博客-CSDN博客

分页计算总页数算法:总页数=(总数-1)/每页数量+1----总页数=(总数+每页数量-1)/每页数量_总页数怎么算-CSDN博客

文章来源:https://blog.csdn.net/qq_44170108/article/details/134813403
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。