分页算法
分页是一种比较常见的功能,分页的原理其实也很简单,首先要知道没有需要展示的项目数量 pageSize,然后还得知道当前所在的页数 currentPage, 设所有的 item 都在一个数组 array 里,每页需要展示 5 个 item,那么当 currentPage = 1 时,第一页要展示的所有 item 为 array.slice(0, 4), 第二页要展示的 item 为 array.slice(5, 9), 以此类推,那么第 n(n >= 0) 页需要展示的 item 应该为:array.slice(5n, 5n+4),推而广之,基本数字的分页公式就出来了:
currentArray = array.slice(pageSize * (currentPage - 1), pageSize * 2(currentPage - 1) - 1); |
除了基本的数字分页,我们还经常看到上一页,下一页,这种怎么实现呢?上一页就是 currentPage - 1, 那么下一页就是 currentPage + 1,吧这两个分别带入上述公式,我们就得到了上一页,下一页的公式了:
// 上一页 |
分页中还常常看到跳转页面的功能,所要跳转的数字就是我们选择的页数,因此跟第一种同理,用第一个公式即可。
除此之外,在选择下一页的时候,页面的数字组合会往右偏移,选择上一页的时候,页面的数字组合往左偏移,实现的方法也很简单
// 设当前页面数字组合为数组 nums, |
实现了上面的页面数字组合更新之后,还有一个问题,当点击最后一页,和最开始一页时,页面数字组合应该是不被更新的,优化一下上面的算法:
// 设当前页面数字组合为数组 nums, |
至此,我自己总结的分页算法就讲解完啦。
本文标题:分页算法
文章作者:Canace
发布时间:2019-03-18
最后更新:2023-05-26
原始链接:https://canace.site/%E5%88%86%E9%A1%B5%E7%AE%97%E6%B3%95/
版权声明:转载请注明出处
分享