最近在项目中使用了es6的Map()函数对数据结构进行了简单的数据分页

发现Map()这个东西真的是不错,这里也附上阮老师的es6 Map()单点的教程链接

先看看业务需求:用户切换卡片展示不同的商家列表,其中每个列表是分页数据,滑动到底部的时候分别请求每个模块的最新一页数据。并且切换卡片后不刷新重新请求(保留当前卡片的page和current)

简单说下我的处理方法吧

  • 初始化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用来区分数据,打印数据:

获取分页数据时再次Map()一次,数据对比看看

此时数据自动加到对应的key上,我们在处理数据的时候只需根据每个key来获取对应的数据就行了。

我们只需要记录切换的关键id以及当前页数current就行了。

初试Map()这个es6的新特性,个人感觉不管是速度还是功能方面都是不错的,建议大家可以去阮老师的博客下看看这个东西,以后自己的项目有这种需求可以尝试用这个特性写写。

周末难的有空写写东西,如有用的不合适的地方欢迎大家指正~祝大家周末愉快!

转载于:https://juejin.im/post/5cb151786fb9a0686362d257

记一次new Map()相关推荐

  1. Scala mapValues踩坑记:谨慎使用Scala Map的mapValues, 你需要的可能是transform

    我们可以看到在scala 2.13.1最新版本中已经将mapValues方法标记为过时的了 并且方法的返回值也从Map变为了MapView 详细踩坑记录可参考此篇文章:https://blog.csd ...

  2. 记使用postman测试map类型入参的粗心大意

    一 起因 我工作时间不久,前后端做习惯了,一般都在前端打印后端传过来的数据,加之swagger文档一时间又找不到,只能用回以前的postman测试 二 测试 运维我习惯了json格式传数据,然后如下 ...

  3. React学习之围棋记谱本制作(五)死活判断

    这一部分内容基本与React没有关系.判断棋子的死活,比较容易,用种子填充算法来处理.我跟种子填充算法还有些故交,记得上学时,编写挖雷的程序,就用过. 对于围棋死活的判断,要分清块(同色相连的棋),判 ...

  4. Hash+哈希表+HashMap+HashSet

    Hash+哈希表+HashMap+HashSet 哈希算法,是一类「算法」. 哈希表(Hash Table),是一种「数据结构」. 哈希函数,是支撑哈希表的一类「函数」. Map是映射/地图的意思,在 ...

  5. Python常用函数与技巧总结(一)

    一.map(function,iterable,-..) 作用:将iterable中的每一个元素应用function方法处理,将结果作为list返回 如: def add100(x): return ...

  6. Hadoop实例之利用MapReduce实现Wordcount单词统计 (附源代码)

    大致思路是将hdfs上的文本作为输入,MapReduce通过InputFormat会将文本进行切片处理,并将每行的首字母相对于文本文件的首地址的偏移量作为输入键值对的key,文本内容作为输入键值对的v ...

  7. Hibernate_2_Hibernate中对象状态及转化_一级缓存_Session详解_HQL/SQL/Criteria_一对多关系_级联操作

    Hibernate中的对象状态 在Hibernate中持久化对象具有三种状态: 瞬时态, 持久态, 游离态. 瞬时态: 对象没有与Hibernate产生关联(transient,session中没有缓 ...

  8. 【Mapreduce】Mapreduce实例——WordCount

    前言 一. MapReduce的工作原理 二.MapReduce框架的作业运行流程 三.实验环境 四.实验内容 五.实验步骤 MapReduce采用的是"分而治之"的思想,把对大规 ...

  9. GIS初学者,最新OpenLayers WMTS 天地图,OpenLayers加载天地图、调用天地图WMTS示例、tianditu、EPSG:3857、EPSG:4326

    2018最新OpenLayers天地图加载可行方案,天地图WMTS调用,OpenLayers 天地图 WMTS GetCapabilities GetTile 最近要了解Web GIS方面的知识,对我 ...

最新文章

  1. 1199: 房间安排
  2. Linux查看多核CPU利用率
  3. html es表达式传参,ES2015 正则表达式新增特性
  4. SAP MM 分期付款场景下的付款方式
  5. argz_create_sep函数
  6. udp本地通信需要注意哪些方面_验房注意什么?验房都需要检查哪些方面?
  7. 理解矩阵背后的现实意义
  8. 亮点抢先看 | 旷视科技11篇 ICCV 2019 论文概览
  9. 登录显示离线_使用emoji加密文本;nali—终端离线查询 IP 地理信息
  10. 4-1.最大子数组分治法实现
  11. python time sleep 阻塞 异步_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...
  12. 笔记本能安装联想智能云教室吗_挑战Jupyter Notebook:云协作、云硬件,上云的Notebook编程环境...
  13. Python菜鸟教程
  14. 装系统比较好用的PE工具推荐
  15. Riverbed发布SteelFusion 5.0,对NAS存储提供支持
  16. html textarea 缩放,textarea自动撑开缩放
  17. ES、PES、PS、TS流
  18. html5资源管理器,资源管理器的功能有哪些
  19. WindowsXP设置自动登录
  20. JSD-2204-Java语言基础-数组-方法-Day06

热门文章

  1. 使用 CometD、Apache 和 Camel 的 502 代理错误
  2. 客户网站被黑导致CDN加速后打开域名就提示域名纠错
  3. file_get_contents(php://input)
  4. 解读现代存储系统背后的经典算法
  5. Laravel向视图传递变量的两种方法
  6. RabbitMQ学习系列(六): RabbitMQ 高可用集群
  7. Dubbo入门和应用
  8. AS开发者转LAYA一周心得
  9. 【CentOS 7Shell编程4】,shell中的case判断#180208
  10. 用concat批量生成MySQL查询语句