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

137
Vistas
¿Por qué Array.map devuelve resultados diferentes?

De acuerdo con mi comprensión actual de JS, las 3 líneas a continuación deberían devolver el mismo resultado, ¿alguien puede explicarme lo que me estoy perdiendo?

1- Inesperado

 [...Array(6).map((x) => 1)] (6) [undefined, undefined, undefined, undefined, undefined, undefined]

2- esperado

 [...Array(6)].map((x) => 1) (6) [1, 1, 1, 1, 1, 1]

3- inesperado

 Array(6).map((x) => 1) (6) [empty × 6]
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Array(n) crea una matriz de longitud n , pero la matriz no tiene valores, por lo que no hay nada que mapear.

Básicamente, esto:

 const a = Array(n);

es lo mismo que:

 const a = []; a.length = n;

Esta es la razón por la que la matriz creada no tiene elementos. Intentar mapearlo no hará nada ya que no hay valores para mapear.

Sin embargo, puede convertir esa matriz vacía en una matriz de valores undefined . Esto se puede hacer de dos formas:

Uno está usando el operador de propagación como lo ha hecho:

 [...Array(n)] // creates new array [undefined, undefined, undefined ...] n times

El otro, más comúnmente utilizado, es .fill() , que establece su parámetro como el valor de todos los índices de la matriz. Para llenar con undefined , haz lo siguiente:

 Array(n).fill() // fills array with [undefined, undefined, undefined ...] n times

Una matriz de undefined , a diferencia de una matriz vacía, tiene elementos y, por lo tanto, se puede mapear:

 [undefined, undefined, undefined].map(x => 1) // [1, 1, 1]

Entonces, primero puede convertir su matriz vacía en una matriz de undefined y luego mapearla así:

 Array(n).fill().map(x => 1)

Si desea llenar la matriz con el mismo elemento en cada posición como en este ejemplo, simplemente puede pasarlo para completar sin necesidad de mapear la matriz:

 Array(n).fill(1)
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