115 votes

Comment trouver la clé de la plus grande valeur de hachage?

J'ai le hash suivant {"CA"=>2, "MI"=>1, "NY"=>1}

Comment puis-je renvoyer la paire clé / valeur maximale à l'aide de ruby? Je voudrais qu'il retourne "CA"

239voto

Hck Points 4548

Cela retournera la paire max hash maxi-clé en fonction de la valeur des éléments de hachage:

 def largest_hash_key(hash)
  hash.max_by{|k,v| v}
end
 

15voto

Une autre façon pourrait être la suivante:

 hash.each { |k, v| puts k if v == hash.values.max }
 

Cela parcourt chaque paire clé-valeur et renvoie (ou dans ce cas, met) la ou les clés dont la valeur est égale au maximum de toutes les valeurs. Cela devrait renvoyer plus d'une clé en cas d'égalité.

-3voto

Dark Passenger Points 18408

Cela retournera la dernière clé du hachage triée par taille; Cependant, il est possible que deux clés aient la même valeur.

 def largest_hash_key(hash)
  key = hash.sort{|a,b| a[1] <=> b[1]}.last
  puts key
end

hash = { "n" => 100, "m" => 100, "y" => 300, "d" => 200, "a" => 0 }
largest_hash_key(hash)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X