Ruby 配列を条件により満たすものと満たさないものに分割する

  • 作成日 2021.09.08
  • 更新日 2022.08.04
  • Ruby
Ruby 配列を条件により満たすものと満たさないものに分割する

Rubyで、partitionを使って、配列を条件により満たすものと満たさないものに分割するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

partition使い方

partitionを使用すると、配列を条件により満たすものと満たさないものに分割することが可能です。

# 元の配列は影響を受けません
[配列].partition {|x| ...}

以下は、用意した配列の値を、条件により満たすものと満たさないものに分割して表示するサンプルコードとなります。

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

arr1, arr2 = arr.partition {|x| x >= 3} 

p arr1
# [3, 4, 5, 6, 7]

p arr2
# [1, 2]

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

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


arr1, arr2 = arr.partition {|x| x % 2 == 1 } 

p arr1
# [1, 3, 5, 7]

p arr2
# [2, 4, 6]

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