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

126
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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