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

135
Vistas
¿Qué me estoy perdiendo en este comportamiento de Javascript Array?

Intenté esto en la consola de herramientas de desarrollo de Chrome:

 let a = [[null,null],[null,null]] function na(){ return Array(2).fill(Array(2)) } let b = na(); console.log(JSON.stringify(a)) // [[null,null],[null,null]] console.log(JSON.stringify(b)) // [[null,null],[null,null]]

Hasta aquí todo bien. Esperaba tanto a como a b con los mismos valores y estructura. Luego quise probar una pequeña función que debería agregar un valor adicional en cada línea:

 function add(x) { x.map( line => line.push(null) )} add(a) console.log(JSON.stringify(a)) // [[null,null,null],[null,null,null]] add(b) console.log(JSON.stringify(b)) // [[null,null,null,null],[null,null,null,null]] // ?! I was not expecting this extra value here...

Bueno, eso fue inesperado. ¿Por qué aparece ese valor nulo adicional en add(b) ?

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

0

function na(){ return Array(2).fill(Array(2)) }

na() llena el Array(2) vacío con shallow copies del segundo objeto Array(2) .

Como resultado, cambiar los valores en cualquiera de los clones cambia el valor de Array en todas partes.

 a = Array(5).fill(Array(3)) a[0][0] = 1 a[0][1] = 2 a[0][2] = 3 console.log(JSON.stringify(a))

Entonces, debido a que b tiene 2 elementos y está usando .push() para agregar un elemento a b para cada una de las (mismas) matrices, se agregan 2 nuevos elementos a la matriz.

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