記一次new Map()

最近在項目中使用了es6的Map()函數對數據結構進行了簡單的數據分頁

發現Map()這個東西真的是不錯,這裏也附上阮老師的es6 Map()單點的教程連接es6

先看看業務需求:用戶切換卡片展現不一樣的商家列表,其中每一個列表是分頁數據,滑動到底部的時候分別請求每一個模塊的最新一頁數據。而且切換卡片後不刷新從新請求(保留當前卡片的page和current)bash



簡單說下個人處理方法吧數據結構

  • 初始化new Map()

    let memberItemListMap = new Map()複製代碼

  • 頁面加載請求每一個卡片的商家列表,首次加載當前頁current爲1


每次切換卡片或者滑到底部請求分頁數據時拿到數據後立刻存入到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

相關文章
相關標籤/搜索