小程序开发笔记(八)—Js数组按日期分组显示数据
数据分组展示有两种方式,一种是后端直接传入分组格式的Json数据,另一种是我们在前端自己转换格式,这里我们在前端处理转换按日期分组的数据格式
1、例如后端返回数据格式为:
[{createtime:'2019-07-29',content:'哈哈哈'},{createtime:'2019-07-29',content:'哈哈哈'}]
2、页面展示需要的格式为:
[{createtime:'2019-07-29',list:[{createtime:'2019-07-29',content:'哈哈哈'},{createtime:'2019-07-29',content:'哈哈哈'}]}]
3、下面我们使用Js处理成按日期分组归类的数据,代码如下:
let newArr = [];
_list.forEach((item,i)=>{
let index = -1;
let isExists = newArr.some((newItem,j)=>{
if(item.createtime==newItem.createtime){
index = j;
return true;
}
})
if(!isExists){
newArr.push({
createtime:item.createtime,
timeDay:item.timeDay,
timeMonth:item.timeMonth,
subList:[item]
})
}else{
newArr[index].subList.push(item);
}
})
4、处理后的结果:
[
{
"createtime":"2019-07-27",
"timeDay":27,
"timeMonth":7,
"subList":[
{
"group_post_id":128,
"group_id":0,
"group_topic_id":"",
"uid":73,
"nickname":"阿健w ",
"avatar_url":"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKicUgL8bc6EDmPcST3ozT00OZTpmJSrpcFaB3Fjfp5b4PWNxEraKu1wviaIicxVcRzxOE7FfLRYFOTg/132",
"content":"哈哈哈",
"longitude":116.340988,
"latitude":40.006805,
"province":"",
"city":"",
"location":"",
"address":"",
"like_count":0,
"comment_count":0,
"status":"0",
"createtime":"2019-07-27",
"pics":[
],
"timeDay":27,
"timeMonth":7
}
]
}]
问题:
以上这种方式处理在正常情况下是没有问题的,但通常我们在分组显示的时候会存在分页的问题,可以看到下图出现了两个相同的日期,是因为同一天的分组数据不能一页展示完,可能会在第二页或者第三页出现的情况

解决:
方式1:
参考我之前的一个做法https://www.cnblogs.com/fozero/p/7599785.html
if(pageNum==1){
this.list = newArr;
}else{
// 解决分组分页问题
// 遍历newArr 与上页最后一条记录日期比较,相同日期则直接追加
for(let i in newArr){
if(newArr[i].createtime==this.list[this.list.length-1].createtime){
this.list[this.list.length-1].subList = this.list[this.list.length-1].subList.concat(newArr[i].subList);
}else{
this.list.push(newArr[i]);//数组追加
}
}
}
方式2:
参考使用后端mysql分组查询并按照分组条数来进行分页
https://www.cnblogs.com/jackyfee/archive/2011/05/07/GroupPage.html
https://blog.csdn.net/zhang197093/article/details/49425261
小程序开发笔记(八)—Js数组按日期分组显示数据的更多相关文章
- 小程序开发笔记【二】,抽奖结果json数据拼装bug解决
抽奖结果数据json格式数据拼接bug,如下图,只发布了两个奖项,每个奖项设置2个奖品,但最后拼接数据的时候出现3个奖项 json数据格式如下 "luckyResult":[ { ...
- 微信小程序开发笔记02
今天学习了微信小程序开发用到的语言,wxml与wxss语言基本语法与html和css基本语法相似,学习起来相对简单.在小程序主要的语言是js(javascript,跟准确的说是jqery) ,由于这种 ...
- 微信小程序开发笔记01
微信小程序开发的优势 1,不用安装,即开即用,用完就走.省流量,省安装时间,不占用桌面: 2,体验上虽然没法完全媲美原生APP,但综合考虑还是更优: 3,对于小程序拥有者来说,开发成本更低,他们可以更 ...
- 微信小程序开发笔记(一)
一.为什么要学习微信小程序开发 微信小程序是一个可以在微信上打开的轻应用,他是由多个页面组成的程序,跟传统APP比较如下: 优点 1.不需要在应用商店下载,不占用内存空间,即开即用 2.可以在微信内直 ...
- 微信小程序开发笔记
前言: 因为前段时间一直在做关于微信小程序方面的项目,作为一名后端的攻城狮而言做一些简单的前端页面数据操作和管理还是比较容易快上手的,当然前提是要理解微信小程序的基本语法和请求原理.该篇博客主要记录的 ...
- 微信小程序开发笔记(二)
一.前言 继承上一篇所说的,有了对微信小程序的基础概念后,这边将会示范动手做一个小程序,在动手的过程中我们可以更快的熟悉小程序里面的架构和开发流程. 二.小程序的设计 这次要做的是一个猜数字的程序,程 ...
- 微信小程序开发笔记04
今天将小程序的页面进行优化 消除昨天遇到的bug问题. 完成了微信小程序的开发.
- 微信小程序开发笔记03
今天基本实现了微信小程序主要功能,页面还没有进行优化,有些功能还需完善. 页面之间的信息转化部分还未实现.
- 微信小程序开发之拼接json数组字符串
直接上代码 : var imageitem; var imageitemstring=''; for(var i=0;i< that.data.fbimages.length;i ...
随机推荐
- FtpClient上传文件速度非常慢,而且大小为0,上传失败
问题发生: 环境:VSFTP+FTPClient+Client 使用FTPClient上传文件的时候总是卡住,而且文件大小为0,上传失败, 解决方案: 添加代码:调用FTPClient的enterLo ...
- Java生鲜电商平台-微服务架构概述
Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化 ...
- 使用CAD快速看图如何将图纸打印和预览?
有相关CAD工作经验的小伙伴们都知道,绘制完CAD图纸后是需要借助CAD看图工具来进行查看图纸的,其实CAD快速看图中不仅能够对图纸进行查看,还能够将CAD图纸进行打印出来.但是有很多的伙伴不知道要怎 ...
- 这可能最简单的一种PS图片特效,零基础小白教程
不少小伙伴都想学习PS,可是又觉得PS很难,学了一段时间却还是做不出什么惊艳的效果,没关系!小编今天就来教大家做一个超级简单的图片特效,就算是小白也能轻松学会!我们先来看看图片效果~ 想知道怎么做吗? ...
- 【win10】通过环境变量来快速打开应用程序
step1:建一个空文件夹,并把文件夹路径复制到剪贴板. step2:依次右键点击“此电脑”.属性.高级系统设置.环境变量,定位到“系统变量”,点击新建. (说明:环境变量分为用户变量和系统变量,用户 ...
- MBProgressHUD源码(上)
本篇博文记录MBProgressHUD源码学习过程,从官方提供的Demo项目入手,一步步了解其代码结构,学习它使用的技术,体会作者的编程思想. 一.结构 我们先来看下MBProgressHUD的结构, ...
- BayaiM__ oracle函数_01
BayaiM__ oracle函数_01 Oracle函数--------------------------------------------------------------------- ...
- vs code切换中英文界面
1. 在vs code的应用扩展中搜索这个插件: Chinese (Simplified) Language Pack for Visual Studio Code 这个插件,安装完毕重新加载即可生效 ...
- Troubleshooting ORA-30013 Error (Doc ID 1578717.1)
Troubleshooting ORA-30013 Error (Doc ID 1578717.1) APPLIES TO: Oracle Database - Enterprise Edition ...
- react的路由中的switch和exact的使用
刚刚接触react不久,发现在项目中的路由配置中会有switch和exact的使用,现总结如下 switch 为了解决route的唯一渲染(仅仅渲染一个路由路径)出现的 <Switch> ...