El operador REST
El operador REST (...) en JavaScript es una herramienta útil que permite trabajar con un número indefinido de argumentos en funciones o elementos en arrays. Se introdujo en ES6 (ECMAScript 2015) y facilita la manipulación de grupos de elementos de manera más sencilla y clara.
1. Cómo funciona el Operador REST? #
El operador REST se coloca delante de una variable en la declaración de una función o en la desestructuración de un array. Agrupa el resto de los argumentos o elementos en un array.
Sintaxis básica:
1function nombreDeFuncion(...resto) { 2 // 'resto' es un array que contiene todos los argumentos restantes 3}
Uso del Operador REST en Funciones #
En una función, el operador REST permite que la función acepte un número indefinido de argumentos, que se agrupan en un array.
Ejemplo:
1function sumar(...numeros) { 2 let total = 0; 3 for (let num of numeros) { 4 total += num; 5 } 6 return total; 7} 8 9console.log(sumar(1, 2, 3)); // Muestra 6 10console.log(sumar(4, 5, 6, 7)); // Muestra 22Salida de consola 6 22
En este ejemplo:
- La función
sumarusa el operador REST (...numeros) para capturar todos los argumentos pasados a la función. numerosse convierte en un array que contiene todos los argumentos.
Uso del Operador REST en Desestructuración de Arrays #
El operador REST también se puede usar para capturar el resto de los elementos de un array al desestructurarlo.
Ejemplo:
1let [primero, segundo, ...resto] = [10, 20, 30, 40, 50]; 2 3console.log(primero); // Muestra 10 4console.log(segundo); // Muestra 20 5console.log(resto); // Muestra [30, 40, 50]Salida de consola 10 20 [ 30, 40, 50 ]
En este ejemplo:
[primero, segundo, ...resto]desestructura el array original.primerotoma el valor10,segundotoma el valor20, yrestocaptura el resto de los elementos ([30, 40, 50]) en un array.
Laboratorio: repartir una colección entre variables #
Selecciona posiciones, omite un elemento y reúne lo restante con ...resto.
Compara la desestructuración de arrays y objetos, renombra una propiedad y prueba
valores por defecto con undefined y null: sus resultados son diferentes.
Laboratorio interactivo
Desestructuración: extraer, omitir y reunir con rest
Mueve valores desde una colección a variables mediante desestructuración real. Compara arrays con objetos y observa cuándo se utiliza el valor por defecto.
Posiciones de entrada
[0] · primero
"Ada"
[1] · resto
24
[2] · resto
"JS"
[3] · resto
"Astro"
primero
"Ada"
resto
[24, "JS", "Astro"]
primero: "Ada" · resto: 3 elementos · se conserva el valor de entrada
const [primero = "Invitado", ...resto] = entrada;
El valor por defecto actúa cuando el dato es undefined o falta, no cuando es null. Rest crea una colección nueva y recoge solo lo que no se ha extraído. La copia es superficial: si recoge objetos anidados, conserva sus referencias.
Experimenta: En arrays activa Omitir posición 1. Después prueba undefined y null como primer valor: solo undefined usa el valor por defecto. En objetos, nombre se renombra a alias y queda fuera de resto.
Resumen del tema
Conceptos clave #
- Operador Rest (
...): agrupa o recolecta múltiples elementos dispersos en una única estructura array. - Parámetros Rest en Funciones:
function fn(a, b, ...resto) {}captura cualquier argumento adicional posicional. Debe colocarse siempre como el último parámetro de la función. - Desestructuración con Rest: permite extraer elementos iniciales y empaquetar el remanente en arrays (
const [primero, ...demas] = lista) u objetos (const { id, ...restoProps } = objeto).
Qué debes recordar #
El operador Rest (...) agrupa los elementos restantes en un array real y debe situarse obligatoriamente al final de la lista de parámetros o variables de desestructuración.