要按照日期时间字段对JS对象数组进行排序和分组,可以使用sort
方法和reduce
方法来实现。
下面是一个示例代码,假设有一个包含日期时间字段的对象数组data
,我们要按照日期时间字段dateTime
进行排序和分组:
// 原始数据
const data = [
{ id: 1, dateTime: '2022-01-01T10:00:00' },
{ id: 2, dateTime: '2022-01-02T12:00:00' },
{ id: 3, dateTime: '2022-01-01T08:00:00' },
{ id: 4, dateTime: '2022-01-02T09:00:00' },
];
// 按日期时间字段排序
data.sort((a, b) => {
return new Date(a.dateTime) - new Date(b.dateTime);
});
// 按日期时间字段分组
const groupedData = data.reduce((accumulator, currentValue) => {
const date = currentValue.dateTime.split('T')[0]; // 获取日期部分
if (!accumulator[date]) {
accumulator[date] = [];
}
accumulator[date].push(currentValue);
return accumulator;
}, {});
console.log(groupedData);
上述代码将会输出以下结果:
{
'2022-01-01': [
{ id: 3, dateTime: '2022-01-01T08:00:00' },
{ id: 1, dateTime: '2022-01-01T10:00:00' }
],
'2022-01-02': [
{ id: 4, dateTime: '2022-01-02T09:00:00' },
{ id: 2, dateTime: '2022-01-02T12:00:00' }
]
}
可以看到,对象数组已按照日期时间字段进行排序,并按照日期进行了分组。每个日期作为键,对应的对象数组作为值。
上一篇:按照日期时间字段的月份分组
下一篇:按照日期时间字段分组为月份