JS: Arrays
Teoría: Spread y creación de nuevos arrays
Hasta ahora, hemos aprendido cómo podemos usar el operador rest (...) para recoger varios elementos en un solo array. Ahora vamos a conocer a su compañero: el operador spread. Aunque tienen la misma sintaxis (...), hacen cosas opuestas.
rest junta elementos en un solo array, spread los expande, permitiéndonos copiar o combinar arrays de manera más sencilla y flexible.
Expandir arrays con spread
Imagina que tenemos un array con ciudades de Francia y queremos crear un nuevo array que también contenga algunas ciudades de Italia. Podemos hacer esto usando el operador spread:
Lo que está pasando aquí
-
...frenchCitiestoma todos los elementos defrenchCitiesy los "expande" en el nuevo array. -
El array
frenchCitiesoriginal no se modifica. -
Básicamente, es como si hubiéramos escrito:
Alternativa sin spread
Sin el operador spread, podríamos hacer esto mismo con el método .concat():
✅ Ambas opciones producen el mismo resultado, pero usar spread*es más limpio y más fácil de leer.
Ubicación flexible del spread
Algo genial de spread*es que no tiene que ir solo al final de un array. Podemos colocarlo en cualquier parte:
⏬ Al inicio
Aquí, primero expandimos frenchCities, y luego agregamos 'milan' y 'rome'.
⏬ En medio
También podemos usar spread para insertar elementos en el medio de un array:
Sin spread, no hay una forma sencilla de hacer esto en una sola línea.
Combinar múltiples arrays
No solo podemos expandir un solo array, sino que también podemos combinar varios arrays fácilmente:
Alternativa sin `spread:
✅ De nuevo, spread nos permite escribirlo de forma más compacta y legible.
Copiar un array con spread
Una de las formas más comunes de usar spread es copiar un array. Esto es útil cuando queremos modificar la copia sin afectar el original.
¿Por qué copiar un array así?
Si hubiéramos hecho esto en su lugar:
Ambas variables habrían apuntado al mismo array en memoria, y modificar copy también cambiaría frenchCities.
Alternativa sin spread:
✅ El operador spread nos permite hacer esto de manera más limpia.
Resumen
- El operador
...spreadexpande los elementos de un array, a diferencia derest, que los agrupa. - Se usa a la derecha del signo
=cuando construimos nuevos arrays. - Podemos usar
spreaden cualquier parte del array: al inicio, en medio o al final. - Sirve para combinar múltiples arrays en uno solo.
- Es una forma sencilla de hacer copias de arrays sin modificar el original.
Ahora que lo conoces, ¡pruébalo en tu código y verás lo útil que es!