Ruby のメソッドで配列から特定の条件に合う要素を選択する系のメソッド3つ。
select メソッド
特定の条件に合致する要素のみを返すメソッド。
ingredient = [にんじん, りんご, バナナ, 豚バラ肉, ぶなしめじ, ピーマン, 桃]
# select メソッドで果物のみ抽出 (フルーツ美味しいもんね)
ingredient.select { |ing| ing.fruit? }
# => [りんご, バナナ, 桃]
reject メソッド
特定の条件に合致しない要素のみを返すメソッド。
裏を返せば、条件に合致した要素を除くことができるメソッド。
ingredient = [キャベツ, ほうれん草, バナナ, パプリカ, 鶏肉, みかん]
# reject メソッドで野菜のみ抽出 (野菜嫌い)
ingredient.reject { |ing| ing.vegetable? }
# => [バナナ, 鶏肉, みかん]
partition メソッド
上記の select メソッドと reject メソッドを一挙にやってくれるメソッド。
条件に合致する要素の配列と、条件に合致しない要素の配列とを返す。
ingredient = [ふぐ, 毒リンゴ, ぶどう, ヘビ, 納豆]
# partition メソッドで毒の有無で分別 (納豆は腐っているだけで、毒はない)
ingredient.partition { |ing| ing.poison? }
# => [[ふぐ, 毒リンゴ, ヘビ], [ぶどう, 納豆]]
参考サイト
- selectメソッドの公式リファレンスマニュアル
- rejectメソッドの公式リファレンスマニュアル
- partitionメソッドの公式リファレンスマニュアル