Curso gratuito de JavaScript. Regístrate para hacer un seguimiento de tu progreso →

JavaScript: Funciones con número variable de parámetros

Una característica interesante de algunas funciones es que pueden aceptar un número variable de parámetros. No estamos hablando de valores predeterminados. Mira este ejemplo:

Math.max(1, 10, 3); // 10

La función Math.max() encuentra el valor máximo entre los parámetros proporcionados. ¿Cuántos parámetros crees que espera esta función? Si abrimos la documentación de esta función, veremos una construcción extraña:

  Math.max([value1[, value2[, ...]]])

Esta notación indica que esta función acepta cualquier número de parámetros (e incluso puede ser llamada sin ellos). La opcionalidad de los parámetros se describe con corchetes [ ], de la misma manera que se describen los parámetros opcionales que tienen valores predeterminados. La posibilidad de pasar cualquier número de parámetros está representada por esta parte [, ...].

  Math.max(1, -3, 2, 3, 2); // 3

Todo lo que se indica entre corchetes no es obligatorio. En esta notación Math.max([value1[, value2[, ...]]]), hay varios corchetes y están anidados entre sí. Analicemos cada uno de ellos:

  • Los primeros corchetes contienen [value1[, value2[, ...]]], lo que significa que se puede llamar a la función sin parámetros, ya que estos corchetes contienen todo lo que se pasa a la función. Si eliminamos todo el contenido de estos corchetes y los corchetes mismos, nos quedará Math.max() — una llamada sin parámetros.
  • Los segundos corchetes están anidados dentro de los primeros y contienen [, value2[, ...]]. Indican que si hemos especificado el primer parámetro, opcionalmente podemos especificar el segundo parámetro. Sin estos corchetes y su contenido, la notación sería Math.max([value1]).
  • Los terceros corchetes están anidados dentro de los segundos y contienen [, ...]. Los puntos suspensivos indican que puede haber cualquier número de parámetros. Si eliminamos estos corchetes y su contenido, obtendremos una notación como Math.max([value1[, value2]]).

La coma está dentro de los corchetes, ya que si no especificamos un parámetro, la coma no es necesaria. De lo contrario, una llamada con un solo parámetro se vería así Math.max(value1,).

Tarea

Calcula programáticamente (no mentalmente) el número mínimo entre 3, 10, 22, -3, 0, y muéstralo en pantalla. Utiliza la función Math.min(), que funciona de manera similar a Math.max().

¿El ejercicio no pasa la prueba, qué debo hacer? 😶

Si te quedaste atascado, es el momento perfecto para hacer una pregunta en las "Discusiones".
* Asegúrate de incluir la salida de las pruebas. Sin ella, es casi imposible entender qué está mal, incluso si muestras tu código. Los programadores tienen dificultades para ejecutar el código en su mente, pero casi siempre es posible entender a dónde mirar a partir del error que recibiste.

Mi código funciona en mi entorno, pero no aquí 🤨

Las pruebas están diseñadas de manera que verifican la solución de diferentes maneras y con diferentes datos. A menudo, una solución funciona con ciertos datos de entrada pero no con otros. Para entender este punto, revisa la pestaña "Pruebas" y presta atención a los mensajes de error, que suelen contener pistas.

Mi código es diferente a la solución del profesor 🤔

Esto es normal 🙆. En programación, una tarea puede tener muchas soluciones diferentes. Si tu código pasa la prueba, cumple con los requisitos de la tarea.

En raras ocasiones, la solución puede estar ajustada para pasar las pruebas, pero esto suele ser evidente.

Leí la lección, pero no entendí nada 🙄

Crear materiales de aprendizaje comprensibles para todos es bastante difícil. Hacemos nuestro mejor esfuerzo, pero siempre hay margen para mejorar. Si encuentras material que no entiendes, describe el problema en las "Discusiones". Es ideal si puedes formular los aspectos que no entiendes en forma de preguntas. Por lo general, necesitamos unos días para hacer mejoras.

Por cierto, tú también puedes contribuir a mejorar los cursos: en la parte inferior hay un enlace al código fuente de las lecciones, que se puede modificar directamente en el navegador.

Consejos útiles

Definiciones

  • Argumento predeterminado — Argumento opcional de una función.


¿Encontraste un error? ¿Quieres añadir algo? Las solicitudes de extracción son bienvenidas. https://codica.la/errores
Si te encuentras con dificultades y no sabes qué hacer, pregunta en nuestra gran y amigable comunidad