Parámetro REST

El parámetro REST es una forma virtualmente de ir agregando parámetros infinitos a una función o dentro de una variable.

Para definir parámetros REST, únicamente hay que hacerlo anteponiendo tres puntos (suspensivos) antes del nombre en el cual están guardados estos posibles valores infinitos. En librerías reactivas y frameworks se va a ver muy a menudo este tipo de parámetro.

Ejm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Parámetros REST & Operador Spread</title>
  </head>

  <body>
    <h1>Parámetros REST & Operador Spread</h1>

    <script>
      // REST
      function sumar(a, b, ...c) {
        let resultado = a + b;
        c.forEach(function (n) {
          resultado += n;
        });
        return resultado;
      }

      console.log(sumar(1, 1));
      console.log(sumar(2, 3));
      console.log(sumar(2, 3, 4));
      console.log(sumar(2, 3, 4, 10));
    </script>
  </body>
</html

Operador de progagación o Spread Operator

Cuando una expresión se tenga que expandir en situaciones donde haya múltiples argumentos o elementos, se puede utilizar este tipo de operadores. Un caso muy útil es un array con cierto número de elementos, pero en cierto momento recibimos nuevos parámetros, por lo que en lugar de estar haciendo concatenaciones o push a nuestros arrays, lo que podemos hacer es agregar con el Spread Operator, que utiliza los tres puntos (…).

Ejm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Spread Operator</title>
  </head>

  <body>
    <h1>Spread Operator</h1>

    <script>
      const array1 = [1, 2, 3, 4, 5],
        array2 = [6, 7, 8, 9, 0];
      console.log(array1, array2);

      const array3 = [array1, array2];
      console.log(array3);

      // USO DEL SPREAD OPERATOR
      const array4 = [...array1, ...array2];
      console.log(array4);
    </script>
  </body>
</html>