8
votes

Obtenez la plus grande valeur de JSON Object avec JavaScript

Cela devrait être facile. Je ne peux juste pas comprendre.

Comment puis-je obtenir la plus grande valeur de ce morceau de JSON avec JavaScript. xxx

La clé et la valeur que j'ai besoin est la suivante: xxx

tel qu'il est le plus élevé

merci


0 commentaires

4 Réponses :


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

3 commentaires

@Insin Que signifie HasownProperty? Pourquoi avez-vous utilisé EVAL?


@SystemPuntoOut HardownProperty Guards contre des bibliothèques coquines Ajout de choses à proposer.Prototype, car nous ne connaissons pas le contexte complet dans lequel ce code sera exécuté. J'ai utilisé Eval () car la question a été posée en ce qui concerne JSON - JSON est un format de texte, prend donc toujours la forme de chaînes conformes à la spécification à JSON.ORG. Il se pourrait que l'astucieux de la question était confusionnel JSON avec une notation littérale objet (nombre de tutoriels / articles trompeurs qui ne vous aident pas avec cela), ce que je pourquoi j'ai fait un point d'utilisation d'un texte JSON.


@insin Comment faire la même chose à Android?



2
votes

Ceci est ma fonction pour la plus grande clé xxx


1 commentaires

+1 pour être la seule solution qui gère correctement les valeurs négatives correctement.



8
votes

Si vous avez Underscore : xxx pré>

Comment cela fonctionne: P>

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'


0 commentaires

0
votes

Vous pouvez également parcourir l'objet après avoir analysé 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);


0 commentaires