整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          如何用JavaScript實(shí)現(xiàn)數(shù)組分頁(yè)?

          ello,大家好!今天要和大家分享一個(gè)非常實(shí)用的小技巧——如何在業(yè)務(wù)場(chǎng)景中使用JavaScript對(duì)數(shù)組進(jìn)行分頁(yè)展示。無(wú)論你是前端萌新,還是正在努力提升自己技能的小伙伴,這篇文章都會(huì)對(duì)你有所幫助哦!

          業(yè)務(wù)需求

          想象一下,我們正在開發(fā)一個(gè)購(gòu)物網(wǎng)站,需要展示大量的商品數(shù)據(jù)。如果一下子展示太多,用戶體驗(yàn)肯定不好。這時(shí)候分頁(yè)展示就顯得尤為重要了!如何用JavaScript實(shí)現(xiàn)這一需求呢?別急,我們一步步來(lái)。

          JavaScript數(shù)組分頁(yè)的實(shí)現(xiàn)

          其實(shí),實(shí)現(xiàn)數(shù)組分頁(yè)非常簡(jiǎn)單。我們可以借助JavaScript的slice方法來(lái)達(dá)到目的。下面是具體的代碼示例:

          const arr = Array(100).fill().map((_, i) => i); // 創(chuàng)建一個(gè)包含100個(gè)元素的數(shù)組
          const paginate = (array, pageSize, pageNumber) => {
            return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
          };
          
          // 示例:分頁(yè)展示
          console.log(paginate(arr, 10, 1)); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
          console.log(paginate(arr, 10, 2)); // [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
          console.log(paginate(arr, 10, 3)); // [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

          代碼講解

          1. 創(chuàng)建數(shù)組:我們用Array(100).fill().map((_, i) => i)創(chuàng)建了一個(gè)包含100個(gè)元素的數(shù)組,每個(gè)元素的值等于它的索引。
          2. 定義分頁(yè)函數(shù)paginate函數(shù)接收三個(gè)參數(shù):
          • array:需要分頁(yè)的數(shù)組
          • pageSize:每頁(yè)展示的元素?cái)?shù)量
          • pageNumber:當(dāng)前頁(yè)碼,從1開始計(jì)數(shù)
          1. 實(shí)現(xiàn)分頁(yè)邏輯:通過(guò)slice方法,根據(jù)pageNumberpageSize計(jì)算出要返回的數(shù)組片段。具體來(lái)說(shuō),第一個(gè)參數(shù)是(pageNumber - 1) * pageSize,第二個(gè)參數(shù)是pageNumber * pageSize

          應(yīng)用示例

          通過(guò)console.log輸出結(jié)果,我們可以清楚地看到分頁(yè)后的數(shù)組片段:

          console.log(paginate(arr, 10, 1)); // 第一頁(yè):[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
          console.log(paginate(arr, 10, 2)); // 第二頁(yè):[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
          console.log(paginate(arr, 10, 3)); // 第三頁(yè):[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

          結(jié)束

          看吧!實(shí)現(xiàn)分頁(yè)是不是很簡(jiǎn)單?只要幾行代碼,就能輕松搞定數(shù)組的分頁(yè)展示。希望這個(gè)小技巧能為你的項(xiàng)目帶來(lái)幫助!如果你還有其他關(guān)于JavaScript的問(wèn)題或想學(xué)習(xí)更多的編程知識(shí),歡迎在評(píng)論區(qū)留言,我們一起討論進(jìn)步哦!

          覽器js簡(jiǎn)單分頁(yè)(JQuery)

          • 注意,正經(jīng)需求千萬(wàn)不要用js在瀏覽器分頁(yè),數(shù)據(jù)太多瀏覽器壓力會(huì)很大,實(shí)測(cè)4W張圖片瀏覽器卡死,如果不想加班老老實(shí)實(shí)在服務(wù)器端做分頁(yè)吧!
          • 此js分頁(yè)適用于數(shù)據(jù)量較小的情況
          • 使用:引入js文件,參考https://www.jq22.com/jquery-info10344按文件內(nèi)結(jié)構(gòu)引入相關(guān)資源 創(chuàng)建div 在此div上初始化分頁(yè)
          • 更多模板訪問(wèn)http://www.jq22.com

          一篇文章講解“模型-內(nèi)置標(biāo)簽之定義標(biāo)簽”,本篇文章講解“雜項(xiàng)-分頁(yè)之分頁(yè)實(shí)現(xiàn)”。


          一、分頁(yè)實(shí)現(xiàn)

          ThinkPHP5.1內(nèi)置了分頁(yè)實(shí)現(xiàn),要給數(shù)據(jù)添加分頁(yè)輸出功能變得非常簡(jiǎn)單。

          1. 使用Db類實(shí)現(xiàn)分頁(yè)

          1)使用Db類查詢的時(shí)候調(diào)用paginate方法:

          ①新建Index控制器,并新建dbpage方法

          ②新建dbpage.html模板,并在模板中展示數(shù)據(jù)

          預(yù)覽:

          2)單獨(dú)賦值分頁(yè)輸出的模板變量

          ①在ThinkPHP3版本時(shí),分頁(yè)模板與數(shù)據(jù)是單獨(dú)分開的,在ThinkPHP5中也支持單獨(dú)的分頁(yè)模板。

          ②在dbpage.html模板中,輸出分頁(yè)模板

          預(yù)覽:

          注意:

          1. 默認(rèn)情況下,生成的分頁(yè)輸出是完整分頁(yè)功能,帶總分頁(yè)數(shù)據(jù)和上下頁(yè)碼,分頁(yè)樣式只需要通過(guò)樣式修改即可,完整分頁(yè)默認(rèn)生成的分頁(yè)輸出代碼為:

          <ul>

          <li>

          <span>?</span>

          </li>

          <li>

          <span>1</span>

          </li>

          <li>

          <a href="url?page=2">2</a>

          </li>

          </ul>

          3)單獨(dú)獲取總數(shù)據(jù)數(shù)

          預(yù)覽:


          2. 模型的分頁(yè)查詢

          以上使用的是Db類的分頁(yè)查詢方式,也可以使用模型進(jìn)行分頁(yè)查詢。

          ①新建User模型,并新建getList方法,獲取分頁(yè)查詢數(shù)據(jù)

          ②在Index控制器中,新建modelpage方法,調(diào)用模型中的getList方法

          ③新建modelpage.html模板,在模板中輸出數(shù)據(jù)

          預(yù)覽:

          注意:

          1. 使用模型類實(shí)現(xiàn)分頁(yè)與Db類實(shí)現(xiàn)分頁(yè)相同,其中Db類可以獲取的總頁(yè)數(shù)、單獨(dú)輸出分頁(yè)在模型類中依舊可以實(shí)現(xiàn)。


          3. 傳入總記錄數(shù)

          支持傳入總記錄數(shù)而不會(huì)自動(dòng)進(jìn)行總數(shù)計(jì)算。

          ①在Index控制器中,新建totalnum方法

          ②新建totalnum.html模板,在模板中輸出數(shù)據(jù)

          注意:

          1. 對(duì)于UNION查詢以及一些特殊的復(fù)雜查詢,推薦使用這種方式首先單獨(dú)查詢總記錄數(shù),然后再傳入分頁(yè)方法。


          4. 分頁(yè)后數(shù)據(jù)處理

          支持分頁(yè)類后數(shù)據(jù)直接each遍歷處理,方便修改分頁(yè)后的數(shù)據(jù),而不是只能通過(guò)模型的獲取器來(lái)補(bǔ)充字段。

          1)使用模型進(jìn)行分頁(yè)后數(shù)據(jù)處理

          ①在Index控制器中,新建eachnum方法

          ②新建totalnum.html模板,在模板中輸出數(shù)據(jù)

          預(yù)覽:

          2)使用Db類進(jìn)行分頁(yè)后數(shù)據(jù)處理

          如果是Db類操作分頁(yè)數(shù)據(jù)的話,each方法的閉包函數(shù)中需要使用返回值。

          ①在Index控制器中,新建dbeach方法

          預(yù)覽:?

          ThinkPHP5連載為卓象程序員原創(chuàng),轉(zhuǎn)載請(qǐng)聯(lián)系卓象程序員

          關(guān)注卓象程序員,定期發(fā)布技術(shù)文章

          下一篇講解“雜項(xiàng) - 分頁(yè)之簡(jiǎn)潔分頁(yè)”


          主站蜘蛛池模板: 美女福利视频一区| 亚洲Av无码一区二区二三区| 久久一区二区三区精品| 精品无码人妻一区二区三区| 无码人妻aⅴ一区二区三区有奶水| 看电影来5566一区.二区| 国产一区二区三区播放| 日韩高清国产一区在线| 国产一区二区三区91| 国产在线视频一区| 亚洲中文字幕丝袜制服一区 | 中文字幕无线码一区二区 | 精品无码成人片一区二区98| 国产av成人一区二区三区| 亚洲熟女乱综合一区二区| 免费无码一区二区三区蜜桃大| 色欲精品国产一区二区三区AV| 国产日韩AV免费无码一区二区| 国产成人精品一区二三区在线观看| 美女免费视频一区二区三区| 女女同性一区二区三区四区| 国产av一区最新精品| 日韩一区二区三区不卡视频| 尤物精品视频一区二区三区 | 久久久国产一区二区三区| 国产精品538一区二区在线| 国产AV天堂无码一区二区三区| 国产主播福利精品一区二区| 国产亚洲综合精品一区二区三区 | 一区二区免费电影| 在线一区二区三区| 亚洲高清一区二区三区 | 国产激情一区二区三区在线观看| 看电影来5566一区.二区| 韩国一区二区视频| 亚洲一区二区三区高清不卡| 精品国产乱子伦一区二区三区| 人妻无码视频一区二区三区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲高清偷拍一区二区三区| 国产精品日韩一区二区三区|