rubyのhashで、値の最大値を取得する方法です。
$ irb
irb(main):001:0> h = { 'a' => 10, 'b' => 100, 'c' => 50 }
=> {"a"=>10, "b"=>100, "c"=>50}
irb(main):002:0> h.max { |a, b| a[1] <=> b[1] }
=> ["b", 100]
値が最大のキーと値のペアの配列が取得できます。
配列ですので、以下のようにすれば、キーまたは値だけを取得することもできます。
irb(main):003:0> (h.max { |a, b| a[1] <=> b[1] })[0]
=> "b"
irb(main):004:0> (h.max { |a, b| a[1] <=> b[1] })[1]
=> 100
ちなみに、キーの最大値を取得するなら、以下のようにします。
irb(main):005:0> h.max { |a, b| a[0] <=> b[0] }
=> ["c", 50]
$ irb
irb(main):001:0> h = { 'a' => 10, 'b' => 100, 'c' => 50 }
=> {"a"=>10, "b"=>100, "c"=>50}
irb(main):002:0> h.max { |a, b| a[1] <=> b[1] }
=> ["b", 100]
値が最大のキーと値のペアの配列が取得できます。
配列ですので、以下のようにすれば、キーまたは値だけを取得することもできます。
irb(main):003:0> (h.max { |a, b| a[1] <=> b[1] })[0]
=> "b"
irb(main):004:0> (h.max { |a, b| a[1] <=> b[1] })[1]
=> 100
ちなみに、キーの最大値を取得するなら、以下のようにします。
irb(main):005:0> h.max { |a, b| a[0] <=> b[0] }
=> ["c", 50]