小程序开发笔记(八)—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 ...
随机推荐
- Python Turtle绘画初学编程——六芒星,浪形圈
老师上课说可以自学一下python中的绘图turtle,就自己初步学习了一下,做了两个简单的绘图——六芒星和浪形圈(其实我也不知道该叫它什么,就照样子编了个词
- Windows Server 2012 R2更新(KB2919355)
必须按以下顺序安装这些KB:clearcompressionflag.exe,KB2919355,KB2932046,KB2959977,KB2937592,KB2938439和KB2934018. ...
- C#中对文件进行选择对话框打开和保存对话框进行复制
场景 通过文件选择对话框选择文件 复制文件到指定路径 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号霸道的程序猿获取编程相关电子书.教 ...
- CSS3 新增选择器
CSS3 新增选择器 结构(位置)伪类选择器(CSS3) :first-child :选取属于其父元素的首个子元素的指定选择器 :last-child :选取属于其父元素的最后一个子元素的指定选择器 ...
- Dynamics CRM 2015/2016新特性之七:有了文档模板,打印分析So Easy
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复190或者20160216可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 从CRM 2015 UR1开始, ...
- 剑指offer 20:顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- 微信小程序踩坑日记3——上传照片至服务器
0. 引言 主要解决将小程序端获取的图片保存在服务器上.亲测可用的服务端脚本. 1. 获取照片 通过wx.chooseImage()方法,获取到图片,使用wx.uploadFile()上传图片. wx ...
- [MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'
当程序中使用root账号连接mysql时报以下错误,但是使用命令行是可以正常连接的,那么就查询下mysql数据库的user表,查看下当前用户的密码加密方式,看看是不是unix_socketMariaD ...
- k8s中的client-go编译成功
要分版本的,好像1.4跟12差别好大. 1.4中用的模块管理还是vendor,12就换成mod了. 这个要记住差异. 一,从github上下载client-go的1.4版本 https://githu ...
- 关于destoon6.0下的ngnix伪静态
关于destoon6.0下的ngnix伪静态配置 ##rewrite nginx rewrite '(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)' ...