JavaScript ES6: Parámetros de operador de propagación y reposo

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.