【Ruby】要素がnilのものを排除したい

compactメソッド

compactは、要素がnilのものを排除して、新しい配列を返します。

参考例

arrayがnilを含んでいる場合

array = [1, 2, 3, nil, 4, nil]

array.compact
=> [1, 2, 3, 4]

p array
=> [1, 2, 3, nil, 4, nil]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
array.compact!
=> [1, 2, 3, 4]

p array
=> [1, 2, 3, 4]

arrayがnilを含んでいない場合

array = [1, 2, 3, 4]

array.compact
=> [1, 2, 3, 4]

p array
=> [1, 2, 3, 4]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
array.compact!   #注意
=> nil

p array
=> [1, 2, 3, 4]

*nilを含んでいない配列にcompact!を使うと、「nil」が返ってくるので注意しましょう。

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