我有如下所示紅寶石內扁平化(數組的數組)
[
[[0, :a], [2, :b]],
[3, :c],
[4, :d],
[[5, :e], [6, :f], [7, :g]]
]
即,要麼(1)2-元件陣列元件的陣列,或(2)的數組的數組2元素陣列。
我想找到一個優雅的方式來「扁平化」這個數組,使得(2)中的元素被擴展到根級元素中。在這個例子中:
[[0, :a], [2, :b], [3, :c], [4, :d], [5, :e], [6, :f], [7, :g]]
這幾乎就像使用Array#flatten(depth)
,除了depth
需要由內而外的工作,而不是在外面
實際陣列可以得到非常大的,所以我不知道。由於性能原因,想要將(<<
)元素推入循環中的新陣列。出於某種原因,我想不出如何使用map
,flatten
,flat_map
或其他更高效的方法的任何組合來完成此操作,而無需編寫C++風格的預分配和填充循環。任何人都可以想到更多的Rubyist方法來做到這一點?