2010-06-30 18 views
7

Biorąc pod uwagę tablicę zawierającą inne tablice zagnieżdżone, chcę utworzyć tablicę zawierającą tylko elementy z pierwszej tablicy. Na przykład [["1", "2"], "3", [["4"]]] powinno ocenić na ["1", "2", "3", "4"].Funkcjonalne rozpakowanie zagnieżdżonej tablicy

udało mi się zrobić metodę, która działa:

@@unwrapped_array = [] 
def unwrap_nested_array(array) 
    if array.respond_to?('each') 
    array.each { |elem| unwrap_nested_array(elem) } 
    else 
    @@unwrapped_array.push array 
    end 
end 

ale nie byłem w stanie dowiedzieć się, jak wyeliminować zmienną unwrapped_array @@.

Odpowiedz

10
[["1", "2"], "3", [["4"]]].flatten 
# => ["1", "2", "3", "4"] 
+0

Dzięki! Wiedziałem, że jest łatwa odpowiedź, ale nie jak łatwo było :) – Prisen

Powiązane problemy