Operador de propagación
El operador de propagación «distribuye» los valores en un iterable (matrices, cadenas) a través de cero o más argumentos o elementos. Te explicaré exactamente lo que eso significa más adelante. Pero primero, veamos cómo podríamos combinar dos matrices:
Este método funciona y hace exactamente lo que queremos: tomar arr2 y pegarlo al final de arr1. Pero esto requiere que recordemos el método concat. Sería mejor poder hacer algo como esto.: . Esto es lo que sucede si tratamos de que:
Ahora que hemos acabado con una matriz anidada. Podríamos usar un bucle for, pero eso es mucho código para realizar una tarea relativamente simple. Gracias a ES6, ahora tenemos una forma más fácil de combinar dos matrices: el operador de propagación.
Como se mencionó anteriormente, el operador de propagación toma una matriz (o cualquier iterable) y distribuye sus valores. Echemos un vistazo a cómo funciona:
Que es mucho más simple! El operador de propagación ( … ) toma los valores de arr1 y los distribuye a través de arr2. También se podrían escribir el ejemplo anterior como este:
La propagación operador también puede ser utilizado en una llamada de función. Digamos que tenemos una función que toma un número de parámetros y tenemos los parámetros que queremos pasar almacenados en una matriz. ¿Cómo podemos llamar a la función y pasar la matriz de parámetros? Así es como lo haríamos antes de ES6:
De nuevo, sería bueno poder hacer algo como esto: mySum(params). Esto es lo que pasa si lo intentamos:
Usando el operador de propagación podemos escribir el ejemplo anterior de la siguiente manera:
Como se puede ver, la propagación operador toma la matriz de parámetros y los extiende a través de los argumentos en la llamada a la función. Pero, ¿qué pasa si necesitamos que nuestra función sea capaz de trabajar con un número desconocido de parámetros? Ahí es donde entra en juego el parámetro rest.