Получить наибольшее значение из объекта Json с Javascript - PullRequest
8 голосов
/ 12 апреля 2010

Это должно быть легко. Я просто не могу понять это.

Как получить наибольшее значение из этого фрагмента JSON с помощью JavaScript.

{"data":{"one":21,"two":35,"three":24,"four":2,"five":18},"meta":{"title":"Happy with the service"}}

Ключ и значение, которые мне нужны:

"two":35 

как самое высокое

спасибо

Ответы [ 4 ]

9 голосов
/ 12 апреля 2010
var jsonText = '{"data":{"one":21,"two":35,"three":24,"four":2,"five":18},"meta":{"title":"Happy with the service"}}'
var data = JSON.parse(jsonText).data
var maxProp = null
var maxValue = -1
for (var prop in data) {
  if (data.hasOwnProperty(prop)) {
    var value = data[prop]
    if (value > maxValue) {
      maxProp = prop
      maxValue = value
    }
  }
}
8 голосов
/ 03 ноября 2013

Если у вас подчеркивание :

var max_key = _.invert(data)[_.max(data)];

Как это работает:

var data = {one:21, two:35, three:24, four:2, five:18};
var inverted = _.invert(data); // {21:'one', 35:'two', 24:'three', 2:'four', 18:'five'};
var max = _.max(data); // 35
var max_key = inverted[max]; // {21:'one', 35:'two', 24:'three', 2:'four', 18:'five'}[35] => 'two'
2 голосов
/ 25 ноября 2011

Это моя функция для самого большого ключа

function maxKey(a) {  
  var max, k; // don't set max=0, because keys may have values < 0  
  for (var key in a) { if (a.hasOwnProperty(key)) { max = parseInt(key); break; }} //get any key  
  for (var key in a) { if (a.hasOwnProperty(key)) { if((k = parseInt(key)) > max) max = k; }}  
  return max;  
} 
0 голосов
/ 25 мая 2015

Вы также можете выполнить итерацию объекта после анализа JSON.

var arr = jQuery.parseJSON('{"one":21,"two":35,"three":24,"four":2,"five":18}' );

var maxValue = 0;

for (key in arr)
{
     if (arr[key] > maxValue)
     {
          maxValue = arr[key];   
     }
}

console.log(maxValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...