どうも、ちょげ(@chogetarou)です。
max_byメソッドを使ってハッシュ(Hash)の最大値のキー(Key)を取得する方法を紹介します。
方法

max_byメソッドを使ってハッシュ(Hash)の最大値のキー(Key)を取得するには、ブロックを使います。
まず、ハッシュからmax_byメソッドを呼び出します。
max_byメソッドに引数を2つ持つブロックを渡します。
ブロックで第2引数をそのまま返します。
そして、max_byメソッドの結果のインデックス「0」にアクセスします。
#hash=対象のハッシュ
result = hash.max_by { |k, v| v }[0]
上記のmax_byメソッドの戻り値のインデックス「0」にアクセスすることで、呼び出したハッシュ(Hash)の最大値のキー(Key)を取得できます。
使用例
numbers = {
"one" => 1,
"two" => 2,
"three" => 3,
"ten" => 10,
"four" => 4,
"five" => 5,
}
result = numbers.max_by { |k, v| v }[0]
puts result
出力:
ten
コメント