Ruby 配列からnilを削除する

Rubyで、compactを使用して、配列からnilを削除するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
compact使い方
compactを使用すれば、配列からnilを削除することが可能です。
# 元の配列は変わらない
配列.compact
# 元の配列も変わる
配列.compact!
以下は、配列からnilを削除するサンプルコードとなります。
arr = [ "a", nil, "b", nil, "c"]
p arr.compact
# ["a", "b", "c"]
p arr
# ["a", nil, "b", nil, "c"]
p arr.compact!
# ["a", "b", "c"]
p arr
# ["a", "b", "c"]
delete_ifを使用することもできます。
arr = [ "a", nil, "b", nil, "c"]
p arr.delete_if{ |x| x.nil? }
# ["a", "b", "c"]
p arr
# ["a", "b", "c"]
rejectを使用しても同じです。
arr = [ "a", nil, "b", nil, "c"]
p arr.reject{ |x| x.nil? }
# ["a", "b", "c"]
p arr
# ["a", nil, "b", nil, "c"]
p arr.reject!{ |x| x.nil? }
# ["a", "b", "c"]
p arr
# ["a", "b", "c"]
パフォーマンスは圧倒的に、compactが一番いいです。
【参考】 同じコードを1000万回実行した結果
user system total real
#compact! 0.625000 0.000000 0.625000 ( 0.643709)
#delete_if 2.390000 0.000000 2.390000 ( 2.465789)
#reject! 2.547000 0.016000 2.563000 ( 2.770027)
-
前の記事
javascript lodashを使って配列をランダムに入れ替える 2021.09.25
-
次の記事
php rangeを使って配列を指定した範囲で生成する 2021.09.25
コメントを書く