0

配列のハッシュが与えられた場合、配列の最初の要素が最小であるキーを取得する必要があります。

たとえば、次の場合:

h = { :a => [8,9,1], :b => [7,2,3], :c => [1,7,3] }

1は[8,7,1]の最小値であるため、結果として:cを取得したいと思います。

どうすればこれをエレガントに行うことができますか?

4

2 に答える 2

3
h.key(h.values.min_by &:first)
于 2012-09-27T15:17:42.953 に答える
0
h.sort_by { |k,v| v[0] }[0][0]
# or (equivalent)
h.sort_by { |k,v| v.first }.first.first

デフォルトのアレイコンパレータを使用することで、これを次のように短縮することもできます。

h.sort_by { |k,v| v }[0][0]
于 2012-09-27T15:22:55.627 に答える