Ruby 如何找到具有最大键的哈希值?
我正在使用Ruby 2.4。如何在散列中找到键值最大的条目?我有这个杂烩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 =>
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
,因此该代码并不显示意图。即“意图揭示”与“实施揭示”