Rubyリファレンス: Home

find_all, select (Enumerable)

Edit   History

標準クラス・モジュール > Enumerable > find_all, select

enum.find_all {|item| block }
enum.select {|item| block }

find_allメソッドは、条件に合う要素を探して集めます。ブロック引数itemに要素を入れながらブロックを繰り返し、ブロックの戻り値が真になったときの要素を集め、配列にして返します。

selectメソッドは、find_allの別名です。

次の例は、1から30までの整数のうち7で割り切れるものを集めています。

p (1..30).select {|n| n % 7 == 0 }
[7, 14, 21, 28]

次の例は、ハッシュから60以上の値を持つものを集めます。Ruby 1.9では、Hashクラスのselectメソッドはハッシュを返すため、find_allselectで結果が異なります。

scores = { 'Alice' => 50, 'Bob' => 60, 'Carol' => 90, 'David' => 40 }
p scores.find_all {|k, v| v >= 60 }
[["Bob", 60], ["Carol", 90]]

関連項目