compact メソッド

Ruby | Flatten Array | Exercismにて。

入れ子になったリストのような構造体を受け取り、nil/null 値を含まない平坦化された構造体を返す関数を作る

1,[2,3,null,4],[null],5]
入力すると [1,2,3,4,5]
と出力される

↓自分で考えたもの

class FlattenArray
  def self.flatten(array)
    flatten_array = array.flatten # 平坦化する
    flatten_array.delete(nil) # nil を消す。flatten_arrayにはnilが抜かれた状態だが、この返り値はnilになる。
    flatten_array # nilがない状態の配列
  end
end

↓一番多くスターを獲得しているSiarhei Kavaliouさんの回答

class FlattenArray
  class << self
    def flatten(arr)
      arr.flatten.compact
    end
  end
end

serg-kovalev's solution to Flatten Array on the Ruby track | Exercismより引用

compactというインスタンスメソッド自身から nil を取り除いた配列を生成して返すので、上記の課題を全て解決できる。

参考