上面圖片的實現分頁算法的代碼有點看不明白?一、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
提交
取消
