[Ruby]rejectで配列(array)の要素を検索して削除するには?

Ruby

どうも、ちょげ(@chogetarou)です。

rejectメソッドを使って配列(array)の要素を検索して削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

rejectメソッドを使って配列(array)の要素を検索して削除するには、ブロックを使います。

まず、配列からrejectメソッドを呼び出します。

rejectメソッドに引数を1つ持つブロックを渡します。

ブロックで削除する条件式を返します。

ブロック内では、引数で配列の要素を取得します。

#arr=対象の配列、condition=条件式
result = arr.reject { |x| condition }

上記のrejectメソッドは、呼び出した配列(array)内を検索し、ブロックで返した条件式を満たす要素を削除した配列を生成します。

もし、呼び出した配列に影響を与えたいならば、rejectメソッドではなくreject!メソッドを使います。

#呼び出した配列に影響を与える
arr.reject! { |x| condition }

使用例

使用例1

numbers = [2, 10, 37, 29, 5, 1, 19]

result = numbers.reject{ |x| x % 2 == 0 }

p result
出力:
[37, 29, 5, 1, 19]

使用例2

numbers = [2, 10, 37, 29, 5, 1, 19]

numbers.reject!{ |x| x % 2 == 0 }

p numbers
出力:
[37, 29, 5, 1, 19]

コメント

タイトルとURLをコピーしました