Como sabemos compacto en Array, funciona así:
[ "a", nil, "b", nil, "c", nil ].compact #=> [ "a", "b", "c" ]¿Existe una función similar para hacer eso para una matriz de dos dimensiones?
[[nil, nil], ["Prestation Standard", 1]].compact => [["Prestation Standard", 1]]Esto funcionaría:
ary = [[nil, nil], ["Prestation Standard", 1]] ary.map(&:compact).reject(&:empty?) #=> [["Prestation Standard", 1]] map(&:compact) devuelve una nueva matriz 2D con todos los valores nil eliminados de las matrices internas y reject(&:empty?) elimina los que están vacíos.