上面圖片的實現分頁算法的代碼有點看不明白?一、const聲明的page不是常量嗎?forEach每次循環遍歷的話,page不是要改變嗎?但是為啥沒有報錯,是不是我理解錯了,還是我的知識點盲區?二、整體的算法有點看不明白,請各位大佬幫忙指點一下,謝謝代碼:pages(){const=[]this.iconList.forEach((item,index) => { const page =Math.floor(index/8) if(!pages[page]){
pages[page]=[]
}
pages[page].push(item)
})return pages}
2 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
每次循環遍歷的const page
的作用域只是當前的箭頭函數,函數執行完生命周期就結束了;因此不存在重復聲明的問題;
整體邏輯很簡單啊,沒有什么算法;
pages(){ // 最終分頁結果 const pages=[] // 遍歷icon列表 this.iconList.forEach((item,index) => { // 每8條為一頁;例:0-7為第一頁 // page為當前頁碼; const page =Math.floor(index/8) // 判斷pages中當前頁的存儲數組是否已聲明,未聲明則聲明當前頁為數組格式; if(!pages[page]){ pages[page]=[] } // 將當前icon信息放入對應的頁碼數組中; pages[page].push(item) }) // 返回分頁之后的icon集合; return pages }

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
1: forEach的作用域里面的const 不涉及修改
2: index傳入為0 1 2.... 他這邊8個處理一次 0-8 都是處理為0
最終格式應該為:
[{ X :..., ... },{},{}]
添加回答
舉報
0/150
提交
取消