Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Array::keep_if()メソッドの使い方

keep_ifメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

keep_ifメソッドは、配列の要素を特定の条件に基づいて選別し、条件を満たさない要素を削除するメソッドです。このメソッドは、RubyのArrayクラスに定義されており、配列オブジェクトに対して直接呼び出すことができます。

このメソッドの主な役割は、配列の各要素を一つずつ評価し、引数として与えられたブロック({ ... }do ... endで囲まれた処理)内の条件式にその要素を渡すことです。ブロックが真(true)を返した要素は元の配列に残されますが、偽(false)またはnilを返した要素は配列から完全に削除されます。この処理は元の配列自身を直接変更する、いわゆる「破壊的」な操作です。そのため、メソッド実行後には、レシーバである配列オブジェクトの内容が、指定された条件を満たした要素のみに更新されます。

例えば、数値の配列から偶数だけを残したい場合や、特定のプロパティを持つオブジェクトの配列から該当する要素だけを選び出したい場合などに、このメソッドは非常に有効です。keep_ifメソッドは、処理後の変更された配列自身を戻り値として返します。もしブロックが全く与えられなかった場合、このメソッドは配列の要素を一つずつブロックに渡すためのEnumeratorオブジェクトを返します。配列の内容を条件に基づいて効率的にフィルタリングし、元のデータを直接更新したい場面で重宝されるメソッドです。

構文(syntax)

1[1, 2, 3, 4, 5].keep_if { |element| element.even? }

引数(parameters)

引数なし

引数はありません

戻り値(return)

Array または Enumerator

keep_if メソッドは、ブロックの評価結果が真となった要素のみを残した新しい配列を返します。ブロックの評価結果が偽となった要素は破棄されます。配列に要素が残っている場合、Array オブジェクトが返されます。要素が一つも残らなかった場合、または配列が空であった場合は Enumerator オブジェクトが返されます。

関連コンテンツ

関連プログラミング言語