Нахождение максимального значения атрибута в массиве объектов - PullRequest
307 голосов
/ 26 октября 2010

Я ищу действительно быстрый, чистый и эффективный способ получить максимальное значение "y" в следующем фрагменте JSON:

[
  {
    "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
  }
]

Является ли цикл for единственным способом сделать это? Я как-то увлечён использованием Math.max.

Ответы [ 13 ]

2 голосов
/ 29 сентября 2017

ES6 решение

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

Подробнее см. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max

1 голос
/ 26 августа 2014
var max = 0;                
jQuery.map(arr, function (obj) {
  if (obj.attr > max)
    max = obj.attr;
});
0 голосов
/ 10 мая 2019
Here is very simple way to go:

Your DataSet.

let numberArray = [
  {
    "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
  }
]

1. First create Array, containing all the value of Y
let result = numberArray.map((y) => y)
console.log(result) >> [0.026572007,0.025057454,0.024530916,0.031004457]

2. let maxValue = Math.max.apply(null, result)
console.log(maxvalue) >> 0.031004457
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...