js二维数组如何更快捷的去重?

今天测试小程序的时候发现偶尔出现毫秒级的request重复请求,然后导致商品列表出现重复数据,我的列表是每次加载更多的时候往原有的list中追加新加载的数据,然后因为偶尔出现快速的重复请求导致返回了两次一样的数据,追加进入list之后,展示出来就重复了,我自己想着每次加载更多之后,然后循环判断商品id是否重复,可是感觉效率很低,当加载很多商品之后,页面卡顿,体验不好,请教是否有更好的方法实现?

阅读 3.7k
4 个回答

时间复杂度O(n) -> new set()

应该从源头避免重复请求。

一般请求发出,加锁定,后续请求判断有锁就不继续请求,请求返回或者报错,解除锁定标记。

  1. 针对你的问题,你应该想办法避免重复请求,而不是更快的处理数据
  2. 数据拉下来 keyBy('id') 一下用 object 存储,可以方便去重
  3. 加载商品多,页面卡顿,应该是一次渲染的元素太多,跟数据无关,你要减少元素数,比如分页

典型的防抖与节流的问题

  1. 你让你的加载更多的请求事件 没一秒或者 500毫秒, 只进行一次
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题