Rubyリファレンス: Home

select (Hash)

Edit   History

標準クラス・モジュール > Hash > select

hash.select {|key, val| block }

selectメソッドは、条件に合うキーと値を探して集めます。ブロック引数keyvalにキーと値を入れながらブロックを繰り返し、ブロックの戻り値が真になったときのキーと値を集めて返します。Ruby 1.8.7と1.9では、ブロックを省略したときの戻り値はEnumeratorオブジェクトになります。

次の例は、ハッシュから60以上の値を持つものを集めます。Ruby 1.8では、selectメソッドは配列の配列を返します。

scores = { 'Alice' => 50, 'Bob' => 60, 'Carol' => 90, 'David' => 40 }
p scores.select {|k, v| v >= 60 }
[["Bob", 60], ["Carol", 90]]   (Ruby 1.8の場合)

Ruby 1.9 Ruby 1.9では、selectメソッドはハッシュを返すようになりました。

{"Bob"=>60, "Carol"=>90}       (Ruby 1.9の場合)

関連項目