Operador spread en JavaScript
En ES6 apareció un operador especial ...,
llamado spread.
Cuando el operador spread se coloca antes de un array, divide este array en valores individuales, transformando el array en un conjunto de parámetros necesarios para la llamada a la función.
Probablemente suena complicado, así que veamos
un ejemplo simple. Supongamos que tenemos
una función que toma 3 parámetros
y devuelve su suma:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Supongamos también que tenemos un array de tres elementos:
let arr = [1, 2, 3];
Obviamente, no podemos simplemente tomar y pasar este array como parámetro a la función, así:
let arr = [1, 2, 3];
func(arr);
Porque en este caso todo el array caería en el primer parámetro de la función, y en este parámetro es necesario pasar un número (y también en los demás parámetros).
Por supuesto, se podría hacer lo siguiente:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Pero hay una forma más sencilla: usar el operador spread:
let arr = [1, 2, 3];
func(...arr);
La presencia de una variable no es obligatoria - se puede aplicar spread directamente al array:
func(...[1, 2, 3]);
Se da un array:
let arr = [1, 2, 3, 4, 5];
También se da una función:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Encuentra usando la función proporcionada la suma de los elementos del array.