Sometimes, we’ve to find the max value of a property in an array of JavaScript objects.
In this article, we’ll look at how to find the max value of an attribute in an array of JavaScript objects.
Math.max
The Math.max
method is a static method that lets us find the max value from all the arguments that are passed in.
For instance, we can write:
const array = [{
"x": "8/11/2021",
"y": 0.026572007
},
{
"x": "8/12/2021",
"y": 0.025057454
},
{
"x": "8/13/2021",
"y": 0.024530916
},
{
"x": "8/14/2021",
"y": 0.031004457
}
]
const max = Math.max(...array.map(o => o.y))
console.log(max)
We call array.map
to return an array with the y
property values from each object in the array.
Then we use the spread operator to spread all the values into the Math.max
method as arguments.
Then we get that max
is 0.031004457 since this is the biggest value in the whole list.
Array.prototype.reduce
The reduce
method lets us compute a result from an array of items.
We can use it to find the max value of a property in the array.
For instance, we can write:
const array = [{
"x": "8/11/2021",
"y": 0.026572007
},
{
"x": "8/12/2021",
"y": 0.025057454
},
{
"x": "8/13/2021",
"y": 0.024530916
},
{
"x": "8/14/2021",
"y": 0.031004457
}
]
const maxObj = array.reduce((prev, current) => (prev.y > current.y) ? prev : current)
console.log(maxObj.y)
We call reduce
with a callback that has the prev
and current
parameters.
prev
has the result computed so far.
current
has the current value of array
being iterated through.
We return the object with the bigger y
value in the callback.
Therefore, it should return the object with the biggest y
value in the end.
And maxObj.y
should be the same as max
in the previous example.
Array.prototype.sort
Another way to find the max y
value from the array of items is to sort the array in descending order with sort
.
For example, we can write:
const array = [{
"x": "8/11/2021",
"y": 0.026572007
},
{
"x": "8/12/2021",
"y": 0.025057454
},
{
"x": "8/13/2021",
"y": 0.024530916
},
{
"x": "8/14/2021",
"y": 0.031004457
}
]
const [{
y: max
}] = array.sort((a, b) => b.y - a.y)
console.log(max)
We call array.sort
with a callback that returns b.y — a.y
.
a
and b
are objects in array
being compared.
If the callback’s return value is positive, then the order of the items are switched.
Otherwise, they stay the same.
We destructure the y
value from the first element on the left side and set it as the value of max
.
And max
has the same value as the previous examples.
Conclusion
We can find the max value of a property from an array of JavaScript objects with various array methods or the Math.max
method with the spread operator.