Ped*_*ori 66 ruby arrays concatenation multidimensional-array
我在Ruby on Rails(3.1)中有一个数组数组,其中所有内部数组都有不同的大小.有没有办法轻松连接所有内部数组,以获得所有项目的一个大的一角形数组?
我知道你可以使用Array :: concat函数来连接两个数组,我可以做一个循环依次将它们连接起来,像这样:
concatenated = Array.new
array_of_arrays.each do |array|
concatenated.concat(array)
end
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有类似Ruby的单行程,可以更干净的方式完成.
谢谢你的帮助.
mil*_*ose 151
您正在寻找#flatten:
concatenated = array_of_arrays.flatten
Run Code Online (Sandbox Code Playgroud)
默认情况下,这将以递归方式展平列表.#flatten接受一个可选参数来限制递归深度 - 文档列出了用于说明差异的示例.
d11*_*wtq 27
或者更一般地说:
array_of_arrays.reduce(:concat)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56232 次 |
| 最近记录: |