我正在使用Ruby 2.4。我如何在最具鍵值的散列中找到條目?我有這個哈希如何找到最大密鑰的哈希值?
a = {1 => [1, 2], 2 => [3, 4, 5]}
現在,我在做這個
[a.keys.max, a[a.keys.max]]
但我想有拉這一關的巧妙方式。
我正在使用Ruby 2.4。我如何在最具鍵值的散列中找到條目?我有這個哈希如何找到最大密鑰的哈希值?
a = {1 => [1, 2], 2 => [3, 4, 5]}
現在,我在做這個
[a.keys.max, a[a.keys.max]]
但我想有拉這一關的巧妙方式。
試試這個
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 | k}爲你工作? – radubogdan