I have two user objects:
const user = {
startDate: new Date('2022-10-06'),
endDate: new Date('2022-10-10'),
id:'1234',
title: 'Title 1'
};
const user2 = {
startDate: new Date('2022-10-12'),
endDate: new Date('2022-10-17'),
id: '1112',
title: 'Title 2'
};
and an array with these two objects and an empty object called dateToUserMap
:
const users = [user, user2];
const dateToUserMap = {};
I want to add data to dateToUserMap
and it needs to look like this:
dateToUserMap = {
'01.11.2022': [
{
id: 'asd',
title: 'asd'
}
],
'02.11.2022': [
{
id: 'asd',
title: 'asd'
},
{
id: 'asd1',
title: 'asd1'
}
],
'03.11.2022': [
{
id: 'asd1',
title: 'asd1'
}
]
};
dateToUserMap
should be an object with the days of the intervals of each user in chronological order (in my case should be days from 10/6 until 10/10 and 10/12 until 10/17), and each day should have an array of objects with the id
and title
of the users in that interval.
I tried using forEach
to loop trough the users in the users
array and calculated the interval of each user but I don’t know how to pass that data in the object with all the dates and the id
and title
users.forEach(user => {
const interval = eachDayOfInterval({ start: user.startDate, end: user.endDate });
console.log(interval);
});
I use date-fns
library to help me work with dates and when I log the interval to console I get this:
(6) [Wed Oct 12 2022 00:00:00 GMT+0300 (Eastern European Summer Time), Thu Oct 13 2022 00:00:00 GMT+0300 (Eastern European Summer Time), Fri Oct 14 2022 00:00:00 GMT+0300 (Eastern European Summer Time), Sat Oct 15 2022 00:00:00 GMT+0300 (Eastern European Summer Time), Sun Oct 16 2022 00:00:00 GMT+0300 (Eastern European Summer Time), Mon Oct 17 2022 00:00:00 GMT+0300 (Eastern European Summer Time)]
0
:
Wed Oct 12 2022 00:00:00 GMT+0300 (Eastern European Summer Time) {}
1
:
Thu Oct 13 2022 00:00:00 GMT+0300 (Eastern European Summer Time)
[[Prototype]]
:
Object
2
:
Fri Oct 14 2022 00:00:00 GMT+0300 (Eastern European Summer Time) {}
3
:
Sat Oct 15 2022 00:00:00 GMT+0300 (Eastern European Summer Time) {}
4
:
Sun Oct 16 2022 00:00:00 GMT+0300 (Eastern European Summer Time) {}
5
:
Mon Oct 17 2022 00:00:00 GMT+0300 (Eastern European Summer Time) {}
length
:
6
[[Prototype]]
:
Array(0)
Cronix_legion is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.