Ruby 如何找到具有最大键的哈希值?

Ruby 如何找到具有最大键的哈希值?,ruby,hash,key,max,Ruby,Hash,Key,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 } 另外,默认情况下,#max查找最大的键: > a = {1 => [1, 2], 6 => [-1], 3 =>

我正在使用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 }
另外,默认情况下,
#max
查找最大的

> a = {1 => [1, 2], 6 => [-1], 3 => [0] }
> a.max
#=> [6, [-1]]

怎么了?
a.max_by{k,{v|k}
适合你吗?…或者
a.max_by(&:first)
。技术上是的。但它并不传达意图。我们想按键排序
first
在这里没有显示意图,键和值的顺序是任意的。我不遵循。我相信你知道,当散列是可枚举方法的接收者时,散列的每一个键值对都会作为数组按键值顺序传递给块,所以你的方法的这个变体会产生相同的结果。我在讨论人为因素。英文单词
first
并不意味着
key
,因此该代码并不显示意图。即“意图揭示”与“实施揭示”