Just do IT

思うは招く

Ruby で配列内の空文字を削除したい

rejectメソッドを使った場合。

#空文字が入った配列
ary = ["hoge", "bar", "", "baz"]
p ary.reject { |el| el.empty? }
=> ["hoge", "bar", "baz"]

省略すると以下のように書ける。

p ary.reject(&:empty?)
=> ["hoge", "bar", "baz"]

rejectメソッドは、ブロックの戻り値が真になった要素を除外し、配列を返す。つまりこの場合、empty?で空の要素を識別し、空であれば除外している。

よって、""が除外された配列が返されている。