Ruby 条件を指定して配列の値を削除する

  • 作成日 2021.03.01
  • 更新日 2022.08.12
  • Ruby
Ruby 条件を指定して配列の値を削除する

Rubyで、delete_ifを使って、条件を指定して配列の値を削除するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

delete_if使い方

delete_ifを使用すると、条件を指定して配列の値を削除することが可能です。

# 元の配列は変更されます
[配列].delete_if {|x| ...}  

#変更したくない場合は、rejectを使用します
[配列].reject {|x| ...} 

以下は、用意した配列の値を、条件を指定して配列の値を削除して表示するサンプルコードとなります。

arr = arr=[1, 2, 3, 4, 5, 6]

arr.delete_if {|x| x % 2 == 0}

p arr
# [1, 3, 5]

rejectを使用すると、以下のように元の値は変化しません。

arr = arr=[1, 2, 3, 4, 5, 6]

p arr.reject {|x| x % 2 == 0}
# [1, 3, 5]

p arr
# [1, 2, 3, 4, 5, 6]