⊗jsPmROInr 294 of 505 menu

El operador rest en JavaScript

Comenzaremos esta lección con una aclaración. En todas las lecciones anteriores de esta sección, no te dije toda la verdad sobre el operador ...

En realidad, este operador, dependiendo de su ubicación en el código, puede llamarse operador spread u operador rest.

Como ya sabes, cuando el operador spread se coloca antes de un array o una cadena, los divide en valores individuales. El operador rest, aunque tiene la misma sintaxis ..., está diseñado para otro propósito.

Ahora vamos a averiguar para qué. Supongamos que tenemos una función que acepta dos parámetros:

function func(a, b) { console.log(a); console.log(b); }

Ya debes saber que si se pasan parámetros adicionales a la función, esto no producirá un error:

func(1, 2, 3, 4, 5);

El operador rest permite obtener todos los parámetros adicionales en forma de array. Para ello, se añade un parámetro más a la función (obligatoriamente el último), delante del cual se escriben 3 puntos:

function func(a, b, ...rest) { }

Estos tres puntos son el operador rest, y el nombre de la variable puede ser cualquiera, pero normalmente también se suele llamar rest.

Llamemos a nuestra función con un exceso de parámetros y veamos qué llega a los parámetros a y b, y qué - al resto rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // muestra 1 console.log(b); // muestra 2 console.log(rest); // muestra [3, 4, 5] }

Si no hay parámetros adicionales, en la variable rest se guardará un array vacío:

func(1, 2); function func(a, b, ...rest) { console.log(a); // muestra 1 console.log(b); // muestra 2 console.log(rest); // muestra [] }

La función puede no tener parámetros en absoluto, pero aún así se puede añadir rest. En este caso, la función se puede llamar con cualquier número de parámetros y todos ellos se guardarán en el array rest:

function func(...rest) { console.log(rest); }
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar