Junior
¿Cuál es la diferencia entre los operadores spread y rest?
sobes.tech AI
Respuesta de la IA
El operador spread (...) expande objetos iterables (arreglos, cadenas) en elementos individuales, y se usa a menudo para crear copias de arreglos, fusionar objetos o pasar argumentos a funciones. El operador rest (...) recopila los elementos restantes en un solo arreglo, y se usa en destructuración o al definir funciones para recopilar argumentos.
Ejemplos de uso de spread:
// Crear una copia de un arreglo
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]
// Combinar arreglos
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]
// Pasar argumentos a una función
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6
Ejemplos de uso de rest:
// Recopilar los elementos restantes al destructurar un arreglo
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]
// Recopilar argumentos en una función
function logArguments(arg1, ...restArgs) {
console.log(arg1); // primer argumento
console.log(restArgs); // arreglo de los demás argumentos
}
logArguments(1, 2, 3, 4); // Imprime 1 y [2, 3, 4]
La diferencia clave radica en su propósito: spread expande, rest aglutina.