Techioz Blog

Rubyでハッシュから最初のn個の要素を取得するにはどうすればよいですか?

概要

ハッシュがあり、値を使用してソートしました

@friends_comment_count.sort_by{|k,v| -v}

今、私は上位 5 つの要素のハッシュのみを取得したいのです。 1 つの方法は、カウンターを使用し、その 5 のときにブレークすることです。 Rubyで行う好ましい方法は何ですか?

ありがとう

解決策

h = { 'a' => 10, 'b' => 20, 'c' => 30 }

# get the first two
p Hash[*h.sort_by { |k,v| -v }[0..1].flatten]

編集済み:

# get the first two (more concisely)
p Hash[h.sort_by { |k,v| -v }[0..1]]