Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

97
Vistas
cómo insertar una matriz dentro de una matriz con bucle anidado anidado

Con el siguiente código, quiero insertar una matriz dentro de la matriz de weeks si i <= al valor de cada elemento en esa matriz.

 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([?]) } }

Me gustaría que daysInWeek se viera así:

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

Es la primera vez que trabajo con bucles anidados y realmente no puedo entender la idea y, por lo tanto, no estoy seguro de cómo usar el segundo bucle.

Cualquier ayuda sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Cree una nueva matriz dentro de la instrucción if (i % 7 === 0){ . Esa matriz se creará para cada semana y contendrá sus días.

Ahora comience el segundo bucle restando 6 del valor actual de i . siempre seré una multitud de 7. Así i al restar 6 obtienes el primer día de esa semana. Almacene ese resultado en j .

Luego, para la parte de evaluación del bucle, verifique si j es igual o menor que i , nunca queremos ir más alto que el último día de la semana actual. También verifique si j es igual o menor que numberOfDays . No desea agregar más días de los que indicó.

Agregue cada día a la matriz de días. Luego, después del ciclo, agregue la matriz de días a daysInWeek . Ahora tienes esta estructura de matriz anidada.

 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);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tu bucle está mal. Por favor, intente esto también.

Dentro de un solo bucle, podemos crear todos los arreglos y agregarlos juntos de esta manera.

 const weeks = []; const daysInWeek = []; numberOfDays = 35; for (let i = 1; i <= numberOfDays; i ++) { const weekid = parseInt(((i-1)/7)); // used i-1 because in the loop i started as 1. if we use i/7 we loose a day record from the first week. Test it. if(!weeks.includes(weekid) ){ weeks.push(weekid); } let tempArray = []; if(daysInWeek[weekid] === undefined){ daysInWeek[weekid] = []; } daysInWeek[weekid].push(i); } console.log(daysInWeek);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Math.floor ((i - 1) / 7) te da la clave de la tabla para empujar tus días

 <script type="text/javascript"> const weeks = []; const daysInWeek = [[]]; numberOfDays = 35; for (let i = 1; i <= numberOfDays; i ++) { if (i % 7 === 0){ weeks.push(i) daysInWeek.push([]) } daysInWeek[Math.floor((i - 1) / 7)].push(i) } console.log(daysInWeek); </script>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda