0

I got a array of data the data is dates they are sorted per day. Wat i want to get is the data grouped by date(day) and all the data of every day needs to be in new and separated array. my data can be short 1 date string in 1 day or very long month's or year

My data:

accountDateArray = [
Mon Jun 08 2020 19:47:16 GMT+0200 (Midden-Europese zomertijd),
Mon Jun 08 2020 19:47:26 GMT+0200 (Midden-Europese zomertijd),
Mon Jun 08 2020 19:47:34 GMT+0200 (Midden-Europese zomertijd),
Tue Jun 09 2020 15:40:31 GMT+0200 (Midden-Europese zomertijd),
Tue Jun 09 2020 15:42:28 GMT+0200 (Midden-Europese zomertijd),
Wed Jun 10 2020 00:06:50 GMT+0200 (Midden-Europese zomertijd),
Wed Jun 10 2020 00:06:50 GMT+0200 (Midden-Europese zomertijd),
Wed Jun 10 2020 08:10:51 GMT+0200 (Midden-Europese zomertijd),
Fri Jun 12 2020 10:59:21 GMT+0200 (Midden-Europese zomertijd),
...
]

What i want is:

[
 [
 Mon Jun 08 2020 19:47:16 GMT+0200 (Midden-Europese zomertijd),
 Mon Jun 08 2020 19:47:26 GMT+0200 (Midden-Europese zomertijd),
 Mon Jun 08 2020 19:47:34 GMT+0200 (Midden-Europese zomertijd),
 ],
 [
 Tue Jun 09 2020 15:40:31 GMT+0200 (Midden-Europese zomertijd),
 Tue Jun 09 2020 15:42:28 GMT+0200 (Midden-Europese zomertijd),
 ],
  ...
]

My code

     let NewDateArray = [];
          for (let i in accountDateArray) {
            NewDateArray.push(accountDateArray[i].toString().substring(0, 10));
          }
          let unique = [...new Set(NewDateArray)];

          for (let i in accountDateArray) {
            for (let n in unique) {
              if (
                unique[n] === accountDateArray[i].toString().substring(0, 10)
              ) {
                console.log(accountDateArray[i]);
              }
            }
          }
1
  • 1
    You can make use of reduce() to achieve your task. Commented Jun 13, 2020 at 11:09

1 Answer 1

3

You can make use of reduce function, I hope this will lead you to the right direction.

var accountDateArray = ['Mon Jun 08 2020 19:47:16 GMT+0200 (Midden-Europese zomertijd)','Mon Jun 08 2020 19:47:26 GMT+0200 (Midden-Europese zomertijd)','Mon Jun 08 2020 19:47:34 GMT+0200 (Midden-Europese zomertijd)','Tue Jun 09 2020 15:40:31 GMT+0200 (Midden-Europese zomertijd)','Tue Jun 09 2020 15:42:28 GMT+0200 (Midden-Europese zomertijd)','Wed Jun 10 2020 00:06:50 GMT+0200 (Midden-Europese zomertijd)','Wed Jun 10 2020 00:06:50 GMT+0200 (Midden-Europese zomertijd)','Wed Jun 10 2020 08:10:51 GMT+0200 (Midden-Europese zomertijd)','Fri Jun 12 2020 10:59:21 GMT+0200 (Midden-Europese zomertijd)',];

var result = Object.values(accountDateArray.reduce((acc, date)=>{
    const key = new Date(date).getDate();
    acc[key] = [...(acc[key] || []), date];
    return acc;
},{}));

console.log(result);

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you very much ! its what is was looking for

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.