Rest parámetro es una forma mejorada de manejar el parámetro de función, lo que nos permite manejar más fácilmente varias entradas como parámetros en una función. La sintaxis del parámetro rest nos permite representar un número indefinido de argumentos como una array. Con la ayuda de un parámetro de descanso, se puede llamar a una función con cualquier número de argumentos, sin importar cómo se haya definido. El parámetro de descanso se agregó en ES2015 o ES6, lo que mejoró la capacidad de manejar el parámetro.
Nota: para ejecutar el código de este artículo, utilice la consola proporcionada por el navegador o utilice una herramienta en línea como repl.it.
Sintaxis:
function functionname(...parameters) //... is the rest parameter (triple dots) { statement; }
Nota: Cuando… está al final del parámetro de función, es el parámetro de descanso. Almacena n número de parámetros como una array. Veamos cómo funciona el parámetro resto:
Javascript
// Without rest parameter function fun(a, b){ return a + b; } console.log(fun(1, 2)); // 3 console.log(fun(1, 2, 3, 4, 5)); // 3
Producción:
En el código anterior, no se generará ningún error incluso cuando pasemos más argumentos que los parámetros, pero solo se evaluarán los dos primeros argumentos. Es diferente en el caso del parámetro de descanso. Con el uso del parámetro rest, podemos reunir cualquier cantidad de argumentos en una array y hacer lo que queramos con ellos.
Código Javascript que demuestra la suma de números usando el parámetro resto.
Javascript
// es6 rest parameter function fun(...input){ let sum = 0; for(let i of input){ sum+=i; } return sum; } console.log(fun(1,2)); //3 console.log(fun(1,2,3)); //6 console.log(fun(1,2,3,4,5)); //15
Producción:
Pudimos obtener la suma de todos los elementos que ingresamos en el argumento cuando llamamos a la función fun(). Obtenemos la suma de todos los elementos en la array haciendo uso del bucle for..of que se usa para recorrer los elementos iterables dentro de una array.
Nota: El parámetro rest debe ser el último argumento, ya que su trabajo es recopilar todos los argumentos restantes en una array. Entonces, tener una definición de función como el código a continuación no tiene ningún sentido y generará un error.
javascript
// non-sense code function fun(a,...b,c){ //code return; }
Hagamos uso del parámetro resto con algunos otros argumentos dentro de una función, así:
javascript
// rest with function and other arguments function fun(a,b,...c){ console.log(`${a} ${b}`); //Mukul Latiyan console.log(c); //[ 'Lionel', 'Messi', 'Barcelona' ] console.log(c[0]); //Lionel console.log(c.length); //3 console.log(c.indexOf('Lionel')); //0 } fun('Mukul','Latiyan','Lionel','Messi','Barcelona');
Producción:
En el ejemplo de código anterior, pasamos el parámetro resto como el tercer parámetro y luego básicamente llamamos a la función fun() con cinco argumentos y los dos primeros se trataron normalmente y el resto fue recopilado por el parámetro resto y, por lo tanto, obtenemos ‘ Lionel’ cuando intentamos acceder a c[0] y también es importante tener en cuenta que el parámetro rest da una array a cambio y podemos hacer uso de los métodos de array que nos proporciona el javascript.