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

199
Vistas
Une tres matrices para crear una matriz que es una combinación de un producto cartesiano de filas con columnas y una relación dinámica con celdas

desarrolladores; Tengo tres arrays : Días ( columnas ), Asunto ( filas ), Datos ( celdas )

 let Days = ["Monday", "Tuesday", "Wednesday"]; let Subject = [ "Economics", "geography", "theatre", "music", "mathematics", "psychology", "marketing", "business", "journalism", "languages", ]; const Data = [ ["10:00", "12:10", "13:30"], ["08:30", "12:10", "14:30"], ["14:10", "15:15", "19:10"], ["20:20", "20:50", "23:00"], ["09:10", "10:00", "19:00"], ["10:12", "16:40", "18:10"], ["08:30", "12:10", "14:30"], ["14:10", "15:15", "19:10"], ["20:20", "20:50", "23:00"], ["08:10", "14:20", "20:20"], ];

Quiero hacer una relación entre esas matrices:

Intenté algo como jugar con módulo y hacer un bucle sobre el producto de filas y celdas :

 const cols = Days.length; const rows = Subject.length; const len = Subject.length * Days.length; const table = []; for (let i = 0, j = 0; i < len; i++) { table.push([ Subject[i % rows], Days[j % cols], Data[i % rows][j % cols], ]); j++; } console.table(table);

Pero da resultados no esperados en orden:

Todavía intento clasificarlo, pero no funciona, ya que la clasificación se clasificaría en orden alfabético, lo que no mantiene el orden.

 console.table(table.sort((a, b) => a[0].localeCompare(b[0])));

Gracias de antemano, cualquier sugerencia es bienvenida y apreciada.

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

0

puede hacerlo fácilmente con solo cortar dos veces, filas y columnas.

 let Days = ["Monday", "Tuesday", "Wednesday"]; let Subject = [ "Economics", "geography", "theatre", "music", "mathematics", "psychology", "marketing", "business", "journalism", "languages", ]; const Data = [ ["10:00", "12:10", "13:30"], ["08:30", "12:10", "14:30"], ["14:10", "15:15", "19:10"], ["20:20", "20:50", "23:00"], ["09:10", "10:00", "19:00"], ["10:12", "16:40", "18:10"], ["08:30", "12:10", "14:30"], ["14:10", "15:15", "19:10"], ["20:20", "20:50", "23:00"], ["08:10", "14:20", "20:20"], ]; const cols = Days.length; const rows = Subject.length; const len = Subject.length * Days.length; const table = []; for (let i = 0; i < rows; i++) { for (let j = 0; j < cols; j++) { table.push([ Subject[i], Days[j], Data[i][j], ]); } } console.table(table);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente haciendo la clasificación mientras se realiza el proceso del producto, de la siguiente manera:

 for (let i = 0; i < rows; i++) { for (let j = 0; j < cols; j++) { table.push([ Subject[I], Days[j], Data[i][j], ]); } }

En este caso, estará iterando cada fila de Asunto con todos los valores correspondientes de Días, antes de pasar a la siguiente fila de Asunto, terminando con el orden de elementos deseado.

 For example: the first iteration will be as follows (representing the first three row of the resulting array) i = 0 (Subject[i] = "Economics") j = 0 (Days[j] = "Monday") ---> Data[i][j] = "10:00" j = 1 (Days[j] = "Tuesday") ---> Data[i][j] = "12:10" j = 2 (Days[j] = "Wednesday") ---> Data[i][j] = "13:30"
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