Anduvimos investigado en todo el mundo online y así traerte la solución a tu problema, en caso de alguna difcultad deja tu pregunta y te contestamos con mucho gusto.
Solución:
El código más expresivo para encontrar el valor mínimo probablemente sea el resto de parámetros:
const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
const min = Math.min(...arr)
console.log(min)
Los parámetros de descanso son esencialmente una abreviatura conveniente para Function.prototype.apply
cuando no necesita cambiar el contexto de la función:
var arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
var min = Math.min.apply(Math, arr)
console.log(min)
Este es también un gran caso de uso para Array.prototype.reduce
:
const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
const min = arr.reduce((a, b) => Math.min(a, b))
console.log(min)
Puede ser tentador pasar Math.min
directamente a reduce
sin embargo, la devolución de llamada recibe parámetros adicionales:
callback (accumulator, currentValue, currentIndex, array)
En este caso particular puede ser un poco detallado. reduce
es particularmente útil cuando tiene una colección de datos complejos que desea agregar en un solo valor:
const arr = [name: 'Location 1', distance: 14, name: 'Location 2', distance: 58, name: 'Location 3', distance: 20, name: 'Location 4', distance: 77, name: 'Location 5', distance: 66, name: 'Location 6', distance: 82, name: 'Location 7', distance: 42, name: 'Location 8', distance: 67, name: 'Location 9', distance: 42, name: 'Location 10', distance: 4]
const closest = arr.reduce(
(acc, loc) =>
acc.distance < loc.distance
? acc
: loc
)
console.log(closest)
Y, por supuesto, siempre puedes usar la iteración clásica:
var arr,
i,
l,
min
arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
min = Number.POSITIVE_INFINITY
for (i = 0, l = arr.length; i < l; i++)
min = Math.min(min, arr[i])
console.log(min)
... pero incluso la iteración clásica puede obtener un cambio de imagen moderno:
const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
let min = Number.POSITIVE_INFINITY
for (const value of arr)
min = Math.min(min, value)
console.log(min)
Jon Resig ilustró en este artículo cómo se podría lograr esto extendiendo el prototipo Array e invocando el método Math.min subyacente que desafortunadamente no toma un array pero un número variable de argumentos:
Array.min = function( array )
return Math.min.apply( Math, array );
;
y entonces:
var minimum = Array.min(array);
Encuentro que la forma más fácil de devolver el valor más pequeño de un array es usar el operador de propagación en la función Math.min().
return Math.min(...justPrices);
//returns 1.5 on example given
La página en MDN ayuda a entenderlo mejor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min
Un poco más: esto también funciona en la función Math.max()
return Math.max(...soloPrecios); //devuelve 9.9 en el ejemplo dado.
¡Espero que esto ayude!