Ruby:如何将数组数组连接成一个
我在Ruby on Rails(3.1)中有一个数组的数组,其中所有的内部数组都是不同的大小。 有没有办法轻松地连接所有的内部数组,以获得一个大的一维数组与所有的项目?
我知道你可以使用Array :: concat函数连接两个数组,我可以做一个循环来连续连接它们,如下所示:
concatenated = Array.new array_of_arrays.each do |array| concatenated.concat(array) end
但是我想知道是否有像ruby一样的内容可以以更清晰的方式进行。
谢谢你的帮助。
你正在寻找#flatten
:
concatenated = array_of_arrays.flatten
默认情况下,这将recursion地扁平化列表。 #flatten
接受一个可选的参数来限制recursion深度 – 文档列举了一些例子来说明不同之处。
或者更一般地说:
array_of_arrays.reduce(:concat)
你可以用扁平的! 方法。 例如。 a = [ 1, 2, [3, [4, 5] ] ] a.flatten! #=> [1, 2, 3, 4, 5]