i have an array of objects like this:
arr = [
{name: "Alex", value: 1},
{name: "Bill", value: 2},
{name: "Jim", value: 3},
{name: "Dim", value: 5}
]
I want quick and clean way to have the min an max values of the value property
min = 1,
max = 5
Most performant would probably be a simple loop
arr = [
{name: "Alex", value: 1},
{name: "Bill", value: 2},
{name: "Jim", value: 3},
{name: "Dim", value: 5}
]
let min,max;
for (var i=arr.length; i--;) {
if ((!min) || arr[i].value < min) min = arr[i].value;
if ((!max) || arr[i].value > max) max = arr[i].value;
}
console.log(min, max)
Shortest to write, something like
arr = [
{name: "Alex", value: 1},
{name: "Bill", value: 2},
{name: "Jim", value: 3},
{name: "Dim", value: 5}
]
let m=Math,a=arr.map(z=>z.value);let [min,max]=[m.min(...a),m.max(...a)];
console.log(min,max)