Given the following array of objects with dates in UTC:
const Arr = [
{
"name": "Person 1",
"date": "2021-02-28T14:00:00.000+0000"
},
{
"name": "Person 2",
"date": "2021-02-28T19:15:00.000+0000"
},
{
"name": "Person 3",
"date": "2021-04-04T18:30:00.000+0000"
},
{
"name": "Person 4",
"date": "2021-05-11T19:00:00.000+0000"
},
{
"name": "Person 5",
"date": "2021-05-12T18:45:00.000+0000"
},
{
"name": "Person 6",
"date": "2021-05-11T19:00:00.000+0000"
},
{
"name": "Person 7",
"date": "2021-05-23T15:00:00.000+0000"
}
];
I grouped the items by date using reduce
as described in the below code:
const eventDate = {};
Arr.reduce((groupByDate, event) => {
const date = event.date.split('T')[0];
if (!groupByDate[date]) {
groupByDate[date] = [];
}
groupByDate[date].push(event);
return groupByDate;
}, {});
Getting an object grouped by date (as key) and an array of objects (as values):
{
'2021-02-28': [
{ name: 'Person 1', date: '2021-02-28T14:00:00.000+0000' },
{ name: 'Person 2', date: '2021-02-28T19:15:00.000+0000' }
],
'2021-04-04': [ { name: 'Person 3', date: '2021-04-04T18:30:00.000+0000' } ],
'2021-05-11': [
{ name: 'Person 4', date: '2021-05-11T19:00:00.000+0000' },
{ name: 'Person 6', date: '2021-05-11T19:00:00.000+0000' }
],
'2021-05-12': [ { name: 'Person 5', date: '2021-05-12T18:45:00.000+0000' } ],
'2021-05-23': [ { name: 'Person 7', date: '2021-05-23T15:00:00.000+0000' } ]
}
So my doubt here is how can I loop through that new object in order to get something like this? (date in UTC will be formatted and get only the time)
2021-02-28:
name: Person 1 time: 14:00
name: Person 2 time: 19:15
2021-04-04:
name: Person 3 time: 18:30
2021-05-11:
name: Person 4 time: 19:00
name: Person 6 time: 19:00
2021-05-12:
name: Person 5 time: 18:45
2021-05-23:
name: Person 7 time: 15:00
Thanks in advance!