js数组之数组通过时间(日期)进行分类

Posted 智商不够_熬夜来凑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组之数组通过时间(日期)进行分类相关的知识,希望对你有一定的参考价值。

【目的】我有这么一串数组,想把它按照日期来分类,方便通过日期来查询或分页

[
    
        "tid":"163",
        "date":"2020-04-04",
        "client":"M人民中路分店",
        "status":"已接收",
        "state":"0",
        "address":"广东省广州市人民中路304-314号",
        "remark":"",
        "tag_class":"",
        "start_time":"21:42",
        "end_time":"00:00",
        "tag":"灭蟑螂",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"164",
        "date":"2020-04-04",
        "client":"M昌岗中路分店",
        "status":"已接收",
        "state":"0",
        "address":"广州市海珠区昌岗中路130号首层及二层商铺",
        "remark":"",
        "tag_class":"",
        "start_time":"21:43",
        "end_time":"00:00",
        "tag":"灭飞虫",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"165",
        "date":"2020-04-04",
        "client":"M中信广场分店",
        "status":"已接收",
        "state":"0",
        "address":"广州市天河北路233号中信广场中首层及二层",
        "remark":"",
        "tag_class":"",
        "start_time":"21:43",
        "end_time":"00:00",
        "tag":"灭飞虫",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"166",
        "date":"2020-04-04",
        "client":"M小北路分店",
        "status":"已接收",
        "state":"0",
        "address":"广州市小北路193-215号广州鹏源大厦首层",
        "remark":"",
        "tag_class":"",
        "start_time":"21:43",
        "end_time":"00:00",
        "tag":"灭飞虫",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"167",
        "date":"2020-04-05",
        "client":"M中泰广场分店",
        "status":"已接收",
        "state":"0",
        "address":"广州市天河区林和西路161号中泰广场首层及夹层",
        "remark":"",
        "tag_class":"",
        "start_time":"10:10",
        "end_time":"00:00",
        "tag":"除四害",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"162",
        "date":"2020-04-04",
        "client":"72街白马",
        "status":"已接收",
        "state":"0",
        "address":"广州市白云区火车站白马商场",
        "remark":"无事献殷勤",
        "tag_class":"warm",
        "start_time":"09:28",
        "end_time":"00:00",
        "tag":"灭蟑螂",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    ,
    
        "tid":"156",
        "date":"2020-04-01",
        "client":"测试",
        "status":"已上传",
        "state":"5",
        "address":"",
        "remark":"",
        "tag_class":"warm",
        "start_time":"00:54",
        "end_time":"00:00",
        "tag":"灭蟑螂",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"done_"
    ,
    
        "tid":"159",
        "date":"2020-04-01",
        "client":"M中信广场分店",
        "status":"已上传",
        "state":"5",
        "address":"广州市天河北路233号中信广场中首层及二层",
        "remark":"",
        "tag_class":"warm",
        "start_time":"15:58",
        "end_time":"00:00",
        "tag":"灭老鼠",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"done_"
    ,
    
        "tid":"160",
        "date":"2020-04-02",
        "client":"测试",
        "status":"已接收",
        "state":"0",
        "address":"",
        "remark":"",
        "tag_class":"warm",
        "start_time":"14:01",
        "end_time":"00:00",
        "tag":"灭蟑螂",
        "staff":"测试账号",
        "mould":"0",
        "state_class":"get"
    
]

【实现代码】

dataResort(arr) 
			            var newArr = [];
			            arr.forEach(function (oldData, i) 
			                var index = -1;
			                var createTime = oldData.date.substring(0, 10);
			                var alreadyExists = newArr.some(function (newData, j) 
			                    if (oldData.date.substring(0, 10) === newData.date.substring(
			                            0, 10)) 
			                        index = j;
			                        return true;
			                    
			                );
			                if (!alreadyExists) 
								var res=[];
								res.push(oldData);
			                    newArr.push(
			                        date: oldData.date,
			                        res: res
			                    );
			                 else 
			                    newArr[index].res.push(oldData);
			                
			            );
			            return newArr;
			

【最终结果】

[
    
        "date":"2020-04-04",
        "res":[
            
                "tid":"163",
                "date":"2020-04-04",
                "client":"M人民中路分店",
                "status":"已接收",
                "state":"0",
                "address":"广东省广州市人民中路304-314号",
                "remark":"",
                "tag_class":"",
                "start_time":"21:42",
                "end_time":"00:00",
                "tag":"灭蟑螂",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            ,
            
                "tid":"164",
                "date":"2020-04-04",
                "client":"M昌岗中路分店",
                "status":"已接收",
                "state":"0",
                "address":"广州市海珠区昌岗中路130号首层及二层商铺",
                "remark":"",
                "tag_class":"",
                "start_time":"21:43",
                "end_time":"00:00",
                "tag":"灭飞虫",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            ,
            
                "tid":"165",
                "date":"2020-04-04",
                "client":"M中信广场分店",
                "status":"已接收",
                "state":"0",
                "address":"广州市天河北路233号中信广场中首层及二层",
                "remark":"",
                "tag_class":"",
                "start_time":"21:43",
                "end_time":"00:00",
                "tag":"灭飞虫",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            ,
            
                "tid":"166",
                "date":"2020-04-04",
                "client":"M小北路分店",
                "status":"已接收",
                "state":"0",
                "address":"广州市小北路193-215号广州鹏源大厦首层",
                "remark":"",
                "tag_class":"",
                "start_time":"21:43",
                "end_time":"00:00",
                "tag":"灭飞虫",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            ,
            
                "tid":"162",
                "date":"2020-04-04",
                "client":"72街白马",
                "status":"已接收",
                "state":"0",
                "address":"广州市白云区火车站白马商场",
                "remark":"无事献殷勤",
                "tag_class":"warm",
                "start_time":"09:28",
                "end_time":"00:00",
                "tag":"灭蟑螂",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            
        ]
    ,
    
        "date":"2020-04-05",
        "res":[
            
                "tid":"167",
                "date":"2020-04-05",
                "client":"M中泰广场分店",
                "status":"已接收",
                "state":"0",
                "address":"广州市天河区林和西路161号中泰广场首层及夹层",
                "remark":"",
                "tag_class":"",
                "start_time":"10:10",
                "end_time":"00:00",
                "tag":"除四害",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            
        ]
    ,
    
        "date":"2020-04-01",
        "res":[
            
                "tid":"156",
                "date":"2020-04-01",
                "client":"测试",
                "status":"已上传",
                "state":"5",
                "address":"",
                "remark":"",
                "tag_class":"warm",
                "start_time":"00:54",
                "end_time":"00:00",
                "tag":"灭蟑螂",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"done_"
            ,
            
                "tid":"159",
                "date":"2020-04-01",
                "client":"M中信广场分店",
                "status":"已上传",
                "state":"5",
                "address":"广州市天河北路233号中信广场中首层及二层",
                "remark":"",
                "tag_class":"warm",
                "start_time":"15:58",
                "end_time":"00:00",
                "tag":"灭老鼠",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"done_"
            
        ]
    ,
    
        "date":"2020-04-02",
        "res":[
            
                "tid":"160",
                "date":"2020-04-02",
                "client":"测试",
                "status":"已接收",
                "state":"0",
                "address":"",
                "remark":"",
                "tag_class":"warm",
                "start_time":"14:01",
                "end_time":"00:00",
                "tag":"灭蟑螂",
                "staff":"测试账号",
                "mould":"0",
                "state_class":"get"
            
        ]
    
]

 

以上是关于js数组之数组通过时间(日期)进行分类的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Vue.js 2 按日期对数组进行排序

将今天日期与生日/假期数组进行比较的 JS 函数

网站建设之javascript内置对象的分类及基础写法

JS数组按日期分组

java基础之数组

通过具有日期值的单个键对对象数组进行排序