2010-06-30 70 views
7

Cho một mảng chứa các mảng lồng nhau khác, tôi muốn tạo một mảng chỉ chứa các phần tử từ mảng đầu tiên. Ví dụ [["1", "2"], "3", [["4"]]] phải đánh giá ["1", "2", "3", "4"].Mở chức năng của mảng lồng nhau

tôi đã quản lý để thực hiện một phương pháp mà làm việc:

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

nhưng tôi đã không thể tìm ra cách để loại bỏ các @@ biến unwrapped_array.

Trả lời

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

Cảm ơn! Tôi biết có một câu trả lời dễ dàng, không dễ dàng như thế :) – Prisen

Các vấn đề liên quan