Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda