最近在項目中使用了es6的Map()函數對數據結構進行了簡單的數據分頁
發現Map()這個東西真的是不錯,這裏也附上阮老師的es6 Map()單點的教程連接es6
先看看業務需求:用戶切換卡片展現不一樣的商家列表,其中每一個列表是分頁數據,滑動到底部的時候分別請求每一個模塊的最新一頁數據。而且切換卡片後不刷新從新請求(保留當前卡片的page和current)bash
簡單說下個人處理方法吧數據結構
let memberItemListMap = new Map()複製代碼
每次切換卡片或者滑到底部請求分頁數據時拿到數據後立刻存入到memberItemListMap函數
res.data.data.records.forEach(v => {
let list = memberItemListMap.get(activityId) || []
list.push(v)
memberItemListMap.set(activityId, list)
})複製代碼
此時activityId爲memberItemListMap的key用來區分數據,打印數據:ui
獲取分頁數據時再次Map()一次,數據對比看看spa
此時數據自動加到對應的key上,咱們在處理數據的時候只需根據每一個key來獲取對應的數據就好了。3d
咱們只須要記錄切換的關鍵id以及當前頁數current就好了。code
初試Map()這個es6的新特性,我的感受無論是速度仍是功能方面都是不錯的,建議你們能夠去阮老師的博客下看看這個東西,之後本身的項目有這種需求能夠嘗試用這個特性寫寫。cdn
週末難的有空寫寫東西,若有用的不合適的地方歡迎你們指正~祝你們週末愉快!blog