Comment trouver la clé de la plus grande valeur de hachage?
J'ai la suite de hachage {"CA"=>2, "MI"=>1, "NY"=>1}
Comment puis-je retourner le maximum de valeur de la clé de couplage à l'aide de ruby? Je voudrais qu'il revienne "CA"
- Que faire si il y a plusieurs touches avec le même plus grande valeur?
- de retour juste un
Vous devez vous connecter pour publier un commentaire.
Ce sera le retour de max de hachage paire clé-valeur en fonction de la valeur de hachage éléments:
J'ai trouvé cette façon , remettre la clé de la première valeur max
Une autre façon pourrait être comme suit:
Cela va à travers chaque paire clé-valeur et renvoie (ou dans ce cas met s) clé(s) dont la valeur est égale au maximum de toutes les valeurs. Cela devrait revenir plus d'une touche si il ya une cravate.
Vous pouvez utiliser la méthode de sélection si vous souhaitez que la valeur de la clé de paire retournée:
Si vous voulez récupérer plus d'une valeur de clé de paire basée sur commande(deuxième plus grand, plus petit, etc.), un moyen plus efficace sera de trier la table de hachage une fois et ensuite d'obtenir les résultats souhaités.
Clé de la plus grande valeur
Obtenir un max et min
2ème plus grande valeur de la clé de paire
Pour convertir la valeur de hachage de la matrice de retour dans une table de hachage
Je l'ai fait aujourd'hui sur un problème similaire et qui a abouti à ceci:
Pour Ruby moins de 2.3 vous pouvez remplacer
&.last
avec.try(:last)
Soit on est juste une garantie pour si votre source de hachage est vide:
{}
Ce sera le retour de la dernière touche de la valeur de hachage triés par taille; toutefois, il pourrait y avoir deux touches avec la même valeur.