ello,大家好!今天要和大家分享一個(gè)非常實(shí)用的小技巧——如何在業(yè)務(wù)場(chǎng)景中使用JavaScript對(duì)數(shù)組進(jìn)行分頁(yè)展示。無(wú)論你是前端萌新,還是正在努力提升自己技能的小伙伴,這篇文章都會(huì)對(duì)你有所幫助哦!
想象一下,我們正在開發(fā)一個(gè)購(gòu)物網(wǎng)站,需要展示大量的商品數(shù)據(jù)。如果一下子展示太多,用戶體驗(yàn)肯定不好。這時(shí)候分頁(yè)展示就顯得尤為重要了!如何用JavaScript實(shí)現(xiàn)這一需求呢?別急,我們一步步來(lái)。
其實(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]
通過(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]
看吧!實(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)步哦!
一篇文章講解“模型-內(nèi)置標(biāo)簽之定義標(biāo)簽”,本篇文章講解“雜項(xiàng)-分頁(yè)之分頁(yè)實(shí)現(xiàn)”。
ThinkPHP5.1內(nèi)置了分頁(yè)實(shí)現(xiàn),要給數(shù)據(jù)添加分頁(yè)輸出功能變得非常簡(jiǎn)單。
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ù)覽:
以上使用的是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)。
支持傳入總記錄數(shù)而不會(huì)自動(dòng)進(jìn)行總數(shù)計(jì)算。
①在Index控制器中,新建totalnum方法
②新建totalnum.html模板,在模板中輸出數(shù)據(jù)
注意:
1. 對(duì)于UNION查詢以及一些特殊的復(fù)雜查詢,推薦使用這種方式首先單獨(dú)查詢總記錄數(shù),然后再傳入分頁(yè)方法。
支持分頁(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ù)覽:?
關(guān)注卓象程序員,定期發(fā)布技術(shù)文章
下一篇講解“雜項(xiàng) - 分頁(yè)之簡(jiǎn)潔分頁(yè)”
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。