【Ruby3.x】Array::delete_if()メソッドの使い方
delete_ifメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
delete_ifメソッドは、Arrayオブジェクトが保持する要素の中から、特定の条件に合致するものを削除する処理を実行するメソッドです。
このメソッドはブロックを受け取り、Arrayオブジェクトの各要素を一つずつブロックに渡します。ブロックは渡された要素に対して評価を行い、その結果が真(true)であった場合にのみ、その要素はArrayオブジェクトから削除されます。この処理は元のArrayオブジェクト自体を直接変更する、いわゆる破壊的な操作です。そのため、メソッド呼び出し後にはArrayオブジェクトの内容が永続的に書き換わりますので、元のデータに影響を与えたくない場合は、事前にArrayオブジェクトを複製するなどの対応が必要です。
例えば、数値の配列から偶数だけを削除したい場合や、特定の文字列を含む要素だけを取り除きたい場合などに活用できます。もしブロックが指定されなかった場合は、すぐに処理を実行するのではなく、Arrayオブジェクトの各要素とブロックを連結するためのEnumeratorオブジェクトを返します。これにより、後から別のメソッドと組み合わせて処理をチェーンさせることが可能になります。配列のフィルタリングやクリーニングを行う際に、非常に強力で柔軟な機能を提供します。
構文(syntax)
1array = [1, 2, 3, 4, 5] 2array.delete_if { |element| element.even? }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array or nil
配列からブロックの条件に合致する要素を削除した結果の配列を返します。もし、配列の要素が一つも削除されなかった場合はnilを返します。