Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

200
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!