Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

how to push an array inside an array with nested nested loop

With the following code, I want to push an array inside the weeks array if i is <= to the value of each element in that array.

const weeks = [];
const daysInWeek = [];
numberOfDays = 35;

for (let i = 1; i <= numberOfDays; i ++) {
  if (i % 7 === 0){
    weeks.push(i)
  }
  // output [7, 14, 21, 28, 35]
  for (logic here...) {
    daysInWeek.push([?])
  }
}

I would like daysInWeek to look something like this :

[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15,......], ...]

It is the first time I work with nested loops and I can’t really grasp the idea and therefor I am unsure how to use the second loop.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Any help would be greatly appreciated.

>Solution :

Create a new array inside of the if (i % 7 === 0){ statement. That array is going to be created for every week and is going to hold your days.

Now start the second loop by subtracting 6 from the current value of i. i will always be a multitude of 7. So by subtracting 6 you get the first day in that week. Store that result in j.

Then for the evaluation part of the loop, check if j is equal or lower than i, we never want to go higher than the last day in the current week. Also check if j is equal or lower than numberOfDays. You don’t want to add more days than you indicated.

Add each day to the days array. Then after the loop add the days array to daysInWeek. Now you got this nested array structure.

const weeks = [];
const daysInWeek = [];
numberOfDays = 35;

for (let i = 1; i <= numberOfDays; i ++) {
  if (i % 7 === 0){
    weeks.push(i)
    
    const days = [];
    
    for (let j = i - 6; j <= i && j <= numberOfDays; j++) {
      days.push(j);
    }
    
    daysInWeek.push(days);
  }  
}

console.log(daysInWeek);
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading