[Ruby]max_byメソッドでハッシュ(Hash)の最大値のキーを取得するには?

Ruby

どうも、ちょげ(@chogetarou)です。

max_byメソッドを使ってハッシュ(Hash)の最大値のキー(Key)を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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

コメント

タイトルとURLをコピーしました