Ruby 查找特定数组的哈希键作为值

Ruby 查找特定数组的哈希键作为值,ruby,Ruby,给定数组的散列,我需要得到数组的第一个元素最小的键 例如: h = { :a => [8,9,1], :b => [7,2,3], :c => [1,7,3] } 我想得到:c,因为1是[8,7,1]的最小值 我怎样才能优雅地做到这一点 h.key(h.values.min_by &:first) 通过使用默认阵列比较器,这甚至可以缩短为: h.sort_by { |k,v| v }[0][0] 通过使用默认阵列比较器,这甚至可以缩短为: h.sort_by {

给定数组的散列,我需要得到数组的第一个元素最小的键

例如:

h = { :a => [8,9,1], :b => [7,2,3], :c => [1,7,3] }
我想得到:c,因为1是[8,7,1]的最小值

我怎样才能优雅地做到这一点

h.key(h.values.min_by &:first)
通过使用默认阵列比较器,这甚至可以缩短为:

h.sort_by { |k,v| v }[0][0]
通过使用默认阵列比较器,这甚至可以缩短为:

h.sort_by { |k,v| v }[0][0]

你也应该让你的第一个(更长)solution@JCLL查找最小值不需要排序,因此我更喜欢min_by。您还应该让您的第一个(更长)solution@JCLL查找最小值不需要排序,所以我更喜欢按最小值排序。@TheTinMan:真的没什么showable@TheTinMan:没有什么真正可以展示的