[Ruby]配列(array)の空の要素を削除するには?

Ruby

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

配列(array)の空の要素(nilや空文字)を削除する方法を紹介します。

スポンサーリンク

方法

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

配列(array)の空の要素(nilや空文字)を削除するには、rejectメソッドを使います。

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

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

rejectメソッドのブロックで「i.nil? || i.empty?」( i =引数)を返します。

#arr=対象の配列
result = arr.reject { |i| i.nil? || i.empty? }

上記のrejectメソッドは、呼び出した配列(array)から空の要素を削除した配列を生成します。

もし、新しい配列を生成せず、呼び出した配列を変更したい場合は、reject!メソッドを使います。

result = arr.reject { |i| i.nil? || i.empty?}

使用例

使用例1

numbers = ["1", nil, "2", nil, "", "3", "", "4", nil,  nil, "5"]

result = numbers.reject { |i| i.nil? || i.empty?}

p result
出力:
["1", "2", "3", "4", "5"]

使用例2

numbers = ["1", nil, "2", nil, "", "3", "", "4", nil,  nil, "5"]

numbers.reject! { |i| i.nil? || i.empty?}

p numbers
出力:
["1", "2", "3", "4", "5"]

コメント

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