【Ruby3.x】Array::filter()メソッドの使い方
filterメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
filterメソッドは、Arrayクラスに属するメソッドで、配列から特定の条件を満たす要素だけを選び出して新しい配列を生成するメソッドです。このメソッドは、レシーバーである配列の各要素を一つずつ取り出し、与えられたブロック内でその要素を評価します。ブロックが真(trueまたはnil以外)を返した場合、その要素は新しい配列に含められます。ブロックが偽(falseまたはnil)を返した場合は、その要素は新しい配列には含まれません。filterメソッドを実行しても、元の配列の内容は一切変更されません。例えば、数値の配列から偶数のみを抽出したり、特定の条件を満たすオブジェクトだけを選び出したりする際に非常に役立ちます。
このfilterメソッドは、Rubyの既存のselectメソッドと完全に同じ機能を提供します。filterはselectのエイリアス(別名)としてRuby 2.6以降で導入されました。これは、JavaScriptなど他の多くのプログラミング言語で同様の機能がfilterという名前で提供されているため、Ruby開発者が他言語の知識を活かしやすくするための配慮です。したがって、selectメソッドとfilterメソッドのどちらを使っても、結果は全く同じになります。目的に応じて、より直感的に感じる方を選択して利用することが可能です。
構文(syntax)
1[1, 2, 3, 4, 5].filter { |number| number.even? }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
与えられたブロックで各要素を評価し、真と評価された要素のみを含む新しい配列を返します。