Saltar al contenido

Obtener el valor más pequeño de array en Javascript?

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 reducesin 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!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *