JS: Arrays
Teoría: Rest y desestructuración
Cuando trabajamos con arrays en JavaScript, muchas veces queremos extraer solo algunos elementos y guardar el resto en una nueva variable. Aquí es donde entra en juego la desestructuración junto con el operador rest (...), una herramienta poderosa que hace nuestro código más limpio y fácil de leer.
¿Qué es el operador rest (...)?
🍊🍌🍍 Imagina que tienes una lista de frutas y solo quieres obtener la primera, dejando el resto en otro grupo. Con la desestructuración y el operador ...rest, esto es fácil de lograr:
Explicación
- Extraemos el primer elemento del array y lo asignamos a
first. - Usamos
...restpara capturar todos los elementos restantes y guardarlos en una nueva variablerest. - La variable
restsiempre será un array con los elementos que sobran.
Casos de Uso
Podemos usar el operador rest para capturar diferentes cantidades de elementos fácilmente:
rest:
- Siempre debe estar al final de la lista de variables.
- Si no quedan más elementos al desestructurar, el array restante será vacío (
[]).
⏬ Ejemplo:
Omitir elementos con la desestructuración
Si queremos saltarnos algunos elementos del array sin asignarlos a variables, podemos hacerlo dejando espacios vacíos entre comas:
En este caso:
firstobtiene'apple'.- El segundo elemento (
orange) se omite con una coma extra,. thirdobtiene'banana'.restcontiene['pineapple'].
Alternativa: slice()
Si solo queremos obtener una parte del array sin usar desestructuración, podemos usar .slice().
Diferencias principales:
Usar rest con cadenas de texto
El operador ...rest también funciona con cadenas de texto, ya que en JavaScript las cadenas pueden tratarse como arrays de caracteres:
resto es un array de caracteres, no una cadena de texto.
Resumen
- El operador
...restpermite capturar el resto de los elementos de un array después de la desestructuración. - Siempre debe estar al final de la lista de variables.
- Si no quedan más elementos,
restserá un array vacío[]. - Se pueden omitir elementos dejando espacios vacíos en la desestructuración
[, , ...]. - Si solo se quiere una parte del array sin desestructuración,
.slice()es una buena alternativa. - También se puede usar con cadenas de texto, pero el resultado será un array de caracteres.
Ahora que conoces el operador rest, ¡pruébalo en tu código y hazlo más limpio y legible!