🧹

[Rails] 配列からnilと重複値を取っ払うメソッド

2021/07/12に公開

nil(& 空文字)を払うメソッド

['1', '', ' ', nil, {}, [], 2].reject(&:blank?)
 =>

.reject()

[1, 2, 3, 4, 5, 6].reject {|i| i % 3 == 0 }
=> [1, 2, 4, 5]

各要素に対してブロックを評価し、その値が偽であった要素を集めた新しい配列を返します。条件を反転させた select です。

blank?

nil? + empty? のようなメソッド。nilまたは空のオブジェクトをチェック nil, “”, “ “(半角スペースのみ), 空の配列, 空のハッシュのときにfalseを返します。Railsで拡張されたメソッドで、Rubyのみでは使えないのでご注意ください。

重複値を払うメソッド

[1, 3, 2, 2, 3].uniq   # => [1, 3, 2]

uniq は配列から重複した要素を取り除いた新しい配列を返します。 取り除かれた要素の部分は前に詰められます。要素の重複判定は、Object#eql? により行われます。

nilと重複値を払うメソッド

['1', ' ', [], 2, 1, 3, 2].reject(&:blank?).uniq
=> [1, 2, 3]

綺麗になった。。。

References

https://docs.ruby-lang.org/ja/latest/method/Array/i/reject.html
https://railsdoc.com/active_support
https://docs.ruby-lang.org/ja/latest/method/Array/i/uniq.html

Discussion