Skip to content
Advertisement

Finding the max value of an attribute in an array of objects

I’m looking for a really quick, clean and efficient way to get the max “y” value in the following JSON slice:

[
  {
    "x": "8/11/2009",
    "y": 0.026572007
  },
  {
    "x": "8/12/2009",
    "y": 0.025057454
  },
  {
    "x": "8/13/2009",
    "y": 0.024530916
  },
  {
    "x": "8/14/2009",
    "y": 0.031004457
  }
]

Is a for-loop the only way to go about it? I’m keen on somehow using Math.max.

Advertisement

Answer

To find the maximum y value of the objects in array:

    Math.max.apply(Math, array.map(function(o) { return o.y; }))

or in more modern JavaScript:

    Math.max(...array.map(o => o.y))
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement