どうも、ちょげ(@chogetarou)です。
配列(array)の空文字の要素をすべて削除する方法を紹介します。
方法

配列(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?)
使用例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)から空文字の要素を削除します。
使用例
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?)
コメント