2010-06-30 9 views
7

Étant donné un tableau contenant d'autres tableaux imbriqués, je souhaite créer un tableau contenant uniquement les éléments du premier tableau. Par exemple [["1", "2"], "3", [["4"]]] devrait évaluer à ["1", "2", "3", "4"].Déroulement fonctionnel du tableau imbriqué

J'ai réussi à faire une méthode qui fonctionne:

@@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 

mais je ne l'ai pas été en mesure de comprendre comment éliminer la variable @@ unwrapped_array.

Répondre

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

Merci! Je savais qu'il y avait une réponse facile, mais pas à quel point c'était facile :) – Prisen