私はRuby 2.4を使用しています。どのようにして最大のキー値を持つハッシュ内のエントリを見つけることができますか?私はこの最大の鍵でハッシュ値を見つけるにはどうすればよいですか?
[a.keys.max, a[a.keys.max]]
をやっている、今のところこのハッシュ
a = {1 => [1, 2], 2 => [3, 4, 5]}
を持っていますが、私はこれをやってのけるスリッカー方法があるの姿。
私はRuby 2.4を使用しています。どのようにして最大のキー値を持つハッシュ内のエントリを見つけることができますか?私はこの最大の鍵でハッシュ値を見つけるにはどうすればよいですか?
[a.keys.max, a[a.keys.max]]
をやっている、今のところこのハッシュ
a = {1 => [1, 2], 2 => [3, 4, 5]}
を持っていますが、私はこれをやってのけるスリッカー方法があるの姿。
この
k, v = hash.max_by { |key, value| key }
...または 'a.max_by(&:first)'。 –
技術的にはい。しかし、それは意志を伝達しません。キーでソートしたい「最初」はここで意図を明らかにしていないが、キーと値の順序は任意である。 – akuhn
私は従いません。あなたが知っているように、ハッシュが列挙可能なメソッドのレシーバである場合、ハッシュの各キーと値のペアは、キー値の順序でブロックに配列として渡されます。同じ結果。 –
を試してみてください。また、#max
はデフォルトで最大key
を見つける:
> a = {1 => [1, 2], 6 => [-1], 3 => [0] }
> a.max
#=> [6, [-1]]
それと間違っているのですか? 'a.max_by {| k、_v |あなたのために働く? – radubogdan