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

128
Views
Creación de arreglos multidimensionales sobre la marcha

Tome la siguiente función para generar una tabla de multiplicar cuadrada:

 function getMultTable(n) { /* generate multiplication table from 1 to n */ let table = new Array(n); for (let i=1; i<=n; i++) { table[i-1] = new Array(n); for (let j=1; j<=n; j++) { table[i-1][j-1] = i*j; } } return table; } console.log(getMultTable(3)); // [ // [ 1, 2, 3 ], // [ 2, 4, 6 ], // [ 3, 6, 9 ] // ]

¿Por qué no se puede hacer lo siguiente en su lugar?

 function getMultTable(n) { let table = new Array(n); for (let i=1; i<=n; i++) { for (let j=1; j<=n; j++) { table[i-1][j-1] = i*j; } } return table; }

En otras palabras, ¿por qué no se puede crear una matriz multidimensional sobre la marcha en javascript, o es posible hacerlo de otra manera?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Empecemos por lo básico, ¿por qué no puedes hacer lo siguiente?

 let arr; arr[0] = 1

La respuesta es porque arr no está definido. Bueno, cuando se inicializa una matriz, se inicializa con todas sus entradas sin definir. La table[i-1][j-1] = i*j es equivalente a

 const row = table[i-1]; row[j-1] = i*j

Entonces, cuando se crea la tabla, todos sus elementos son indefinidos , y la declaración row[j-1] = i*j , está tratando de establecer una propiedad de row , en otras palabras, establecer una propiedad de indefinido .

La razón es similar a por qué no puede ejecutar esto

 function getMultTable(n) { let table; for (let i=1; i<=n; i++) { for (let j=1; j<=n; j++) { table[i-1][j-1] = i*j; } } return table; }

Solo que en este caso su problema es intentar leer una propiedad de undefined

about 4 years ago · Juan Pablo Isaza Report

0

Puedes hacerlo algo como esto:

 let arr = new Array(n).fill().map(el => new Array(n).fill());
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!