2017-02-02 12 views
1

私はRuby 2.4を使用しています。どのようにして最大のキー値を持つハッシュ内のエントリを見つけることができますか?私はこの最大の鍵でハッシュ値を見つけるにはどうすればよいですか?

[a.keys.max, a[a.keys.max]] 

をやっている、今のところこのハッシュ

a = {1 => [1, 2], 2 => [3, 4, 5]} 

を持っていますが、私はこれをやってのけるスリッカー方法があるの姿。

+1

それと間違っているのですか? 'a.max_by {| k、_v |あなたのために働く? – radubogdan

答えて

1

この

k, v = hash.max_by { |key, value| key } 
+0

...または 'a.max_by(&:first)'。 –

+0

技術的にはい。しかし、それは意志を伝達しません。キーでソートしたい「最初」はここで意図を明らかにしていないが、キーと値の順序は任意である。 – akuhn

+0

私は従いません。あなたが知っているように、ハッシュが列挙可能なメソッドのレシーバである場合、ハッシュの各キーと値のペアは、キー値の順序でブロックに配列として渡されます。同じ結果。 –

0

を試してみてください。また、#maxはデフォルトで最大keyを見つける:

> a = {1 => [1, 2], 6 => [-1], 3 => [0] } 
> a.max 
#=> [6, [-1]] 
関連する問題