之前项目中有一个需求是这样的:
足迹列表:分组是日期,要求是分页展示;
因为是分页展示因此从服务器返回的原始数据是以单个的商品为单位的,而不是日期为单位,这就需要客户端自行处理分组了;
客户端的分组处理:
网络请求每一页内的数据处理
拿到数据:goodsModel ——数组 跟上一个做判断,是同一天就归到同一组数组,不是同一天就把上一组保存成字典,key是那个时间戳;然后继续新的一组; 最终处理成:字典——key:时间戳,value:该时间戳日期下的商品模型;
新一页的数据与上一页的数据处理:
拿到当前所有数据(字典),拿到最新一页请求的数据(字典) 拿到旧数据的最后一个key值,也就是最后一组的组日期,拿到新一页的第一个key值,也就是即将拼接的第一个日期 比较这两个日期,如果不在同一天,那么合并新数据; 如果在同一天,那么先拼接到同一组,再删除防止重复,最后合并数据;
以为完事了? 我确实完事了,但是怎么发现拼接的不对呀!!!
原因是:
返回的商品数据是数组,我处理成字典之后,别忘了字典可是无序的哟,这样一来我获取的旧数据最后key和新数据最新key就不一定是我想要的了,那么我就需要在获取key的时候排序,排序,排序(降序)
然后就是要注意一点的是拼接和合并的事情,同上一定要注意顺序啦,意顺序啦,顺序啦,序啦,啦~
这次我是真的完事了,哈哈哈哈哈。加班会变傻,深深的为自己的智商担忧!