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

本文介绍了一种将任务列表按日期进行分类的方法,以便于通过日期进行查询或分页操作。通过对原始数据进行处理,实现了将同一日期的任务归类到一起,便于管理和检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

[
    {
        "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"
            }
        ]
    }
]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智商不够_熬夜来凑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值