使用Javascript从Json对象获取最大值

时间:2010-04-12 09:19:27

标签: javascript json sorting

这应该很简单。我只是想不通。

如何使用javascript从这段JSON中获取最大值。

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

我需要的关键和价值是:

"two":35 

因为它是最高的

感谢

4 个答案:

答案 0 :(得分:9)

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
    }
  }
}

答案 1 :(得分:8)

如果你有underscore

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 :(得分:2)

这是我最大的关键功能

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;  
} 

答案 3 :(得分:0)

您还可以在解析JSON后迭代对象。

<img src="data:image/png;base64, <?php echo $photo['image']; ?>">