2010-06-30 8 views
7

Diğer iç içe diziler içeren bir dizi verildiğinde, yalnızca ilk diziden öğeler içeren bir dizi oluşturmak istiyorum. Örneğin, [["1", "2"], "3", [["4"]]], ["1", "2", "3", "4"] değerlerini değerlendirmelidir.İç içe geçmiş dizinin işlevsel olarak çıkarılması

Ben çalışan bir yöntemi yapmak başardınız:

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

ama @@ unwrapped_array değişkeni ortadan kaldırmak için nasıl anlamaya edemedik.

cevap

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

Teşekkürler! Kolay bir cevap olduğunu biliyordum, ne kadar kolay olmadı? – Prisen