[Ruby]配列(array)の空文字を全て削除するには?

Ruby

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

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

スポンサーリンク

方法

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

配列(array)の空文字の要素をすべて削除する方法は、3つあります。

deleteメソッド

ひとつめは、deleteメソッドを使う方法です。

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

そして、deleteメソッドの引数に空文字(””)を指定します。

#arr=対象の配列
arr.delete("")

上記のdeleteメソッドは、呼び出した配列(array)の空文字を全て削除します。

使用例

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

numbers.delete("")

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

rejectメソッド

ふたつめは、rejectメソッドを使う方法です。

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

rejectメソッドの引数に「&:empty?」を指定します。

#arr=対象の配列
result = arr.reject(&:empty?)

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

もし、呼び出した配列に影響を与えたいならば、rejectメソッドではなくreject!メソッドを使います。

#呼び出した配列に影響を与える
arr.reject!(&:empty?)

rejectメソッドは、引数ではなくブロックを使うこともできます。

result = arr.reject{ |x| x.empty? }

使用例1

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

result = numbers.reject(&:empty?)

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

使用例2

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

numbers.reject!(&:empty?)

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

delete_ifメソッド

みっつめは、delete_ifメソッドを使う方法です。

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

delete_ifメソッドの引数に「&:empty?」を指定します。

#arr=対象の配列
arr.delete_if(&:empty?)

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

delete_ifメソッドは、引数ではなくブロックを使うこともできます。

result = arr.delete_if{ |x| x.empty? }

使用例

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

numbers.delete_if(&:empty?)

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

まとめ

配列(array)の空文字の要素をすべて削除する方法は、次の3つです。

  • deleteメソッドを使う方法
    arr.delete("")
  • rejectメソッドを使う方法
    result = arr.reject(&:empty?)
  • delete_ifメソッドを使う方法
    arr.delete_if(&:empty?)

コメント

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