JavaScript

Truco JavaScript: máximo o mínimo de un array en JavaScript

En JavaScript disponemos las funciones Math.max() y Math.min() con las que es posible obtener el máximo y mínimo respectivamente de un conjunto de números. Pero que no permiten obtener ni el máximo, ni el mínimo de un array en JavaScript. Funciones que se pueden utilizar como se muestran a continuación:

Math.max(1, 2, 3, 4, 5); // 5
Math.min(1, 2, 3, 4, 5); // 1

El problema de estas funciones es que no permiten entradas de tipo array, solamente de tipo numérico. Un problema que se puede solucionar empleando diferentes aproximaciones como son los métodos reduce() o apply().

reduce()

Una primera idea para aplicar una función a un array puede ser utilizar programación funcional. El concreto mediante el método reduce(). Para ello solamente se tiene que utilizar como función Math.max() y Math.min() como se muestra a continuación.

const values = [1, 2, 3, 4, 5];
values.reduce((n,m) => Math.max(n,m), -Number.POSITIVE_INFINITY) // 5
values.reduce((n,m) => Math.min(n,m), Number.POSITIVE_INFINITY) // 1

apply()

La forma más fácil de aplicar una función a un array es utilizando la apply(). Simplemente se tiene que aplicar apply() al función que deseemos pasando como primer parámetro null y como segundo el array. Así se puede obtener el máximo o mínimo de un array simplemente con el siguiente código.

Math.max.apply(null, values) // 5
Math.min.apply(null, values) // 1

Obteniendo así un código más compacto que el visto anteriormente.

Sintaxis extendida (“spread sintax”)

Finalmente, en ES2015 se ha introducido la sintaxis extendida con la que se puede expandir los valores de un array dentro de los argumentos de una función. Lo que se puede hacer mediante el operador . Así a partir de esta versión del lenguaje se puede emplear el operador extendido (“spread operator”) en un código como el se muestra a continuación.

Math.max (...values) // 5
Math.min (...values) // 1

Con lo que se obtiene una implantación aún más compacta y fácil de leer que las dos vistas anteriormente. Siendo la posiblemente la mejor opción si se puede utilizar esta versión de JavaScript.

Conclusiones

En esta entrada se han visto tres formas para calcular el máximo o mínimo de un array en JavaScript. Siendo las mejores opciones apply() o el operador extendido.

Imágenes: Pixabay (Theodor Moise )

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Truco

Recent Posts

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

1 día ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

2 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

6 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

This website uses cookies.