Tengo una matriz JSON que se parece a esto:
arr = [{"range":4, "time":56, id:"a4bd"}, {"range":5, "time":65, id:"a4bg"}, {"range":3, "time":58, id:"a4cd"}, {"range":3, "time":57, id:"a4gh"}, {"range":8, "time":60, id:"a5ab"}]Me gustaría saber la mejor manera en javascript para encontrar el valor mínimo o máximo para una de estas propiedades, por ejemplo.
min(arr["time"])o algo similar, que devolvería 56
Use Math.max y Math.min con matriz
Referencia
Estas funciones devolverán los valores mínimos/máximos de una lista de números de entrada.
lo que tiene que hacer es generar la lista de números od contra los cuales necesita encontrar el mínimo o el máximo. Array.map para devolver los valores de cada nodo de la matriz. Extienda la matriz a una lista de números y aplique Math.min y Math.max
const arr = [{ "range": 4, "time": 56, id: "a4bd" }, { "range": 5, "time": 65, id: "a4bg" }, { "range": 3, "time": 58, id: "a4cd" }, { "range": 3, "time": 57, id: "a4gh" }, { "range": 8, "time": 60, id: "a5ab" }]; function findMinMax(key) { const datas = arr.map((node) => node[key]); return { min: Math.min(...datas), max: Math.max(...datas), } } console.log(findMinMax('range')); console.log(findMinMax('time'));Por ejemplo, la solución lodash para la opción mínima:
import _ from 'lodash'; const myMin = (arr, prop) => _.minBy(arr, (o) => o[prop])[prop]; myMin(arr, 'time'); // 56 myMin(arr, 'range'); // 3