如何合并数组?

时间:2014-01-18 00:47:14

标签: ruby

我有一个数组本身包含许多数组,这些数组又包含许多这样的数组:

array[0] = [["a","b","c"],["d","e","f"]]
array[1] = [["u","v","w"],["x","y","z"]]

现在,我怎么做到这样的事情:

array = [["a","b","c"],["d","e","f"],["u","v","w"],["x","y","z"]]

4 个答案:

答案 0 :(得分:3)

array.flatten(1)
# => [["a", "b", "c"], ["d", "e", "f"], ["u", "v", "w"], ["x", "y", "z"]]

Array#flatten采用可选参数来限制数组的平面级别。

答案 1 :(得分:3)

这是最快的

array.reduce(:+)
# => [["a", "b", "c"], ["d", "e", "f"], ["u", "v", "w"], ["x", "y", "z"]]

答案 2 :(得分:1)

array[0] += array[1]array[0]让你:

# => [["a", "b", "c"], ["d", "e", "f"], ["u", "v", "w"], ["x", "y", "z"]]


new_array = array[0] + array[1]new_array让你:

# => [["a", "b", "c"], ["d", "e", "f"], ["u", "v", "w"], ["x", "y", "z"]]


new_array.flatten告诉你:

# => ["a", "b", "c", "d", "e", "f", "u", "v", "w", "x", "y", "z", "u", "v", "w", "x", "y", "z"]

答案 3 :(得分:1)

如果要修改原始数组,可以使用#flatten!

array.flatten! 1 
array # => [["a", "b", "c"], ["d", "e", "f"], ["u", "v", "w"], ["x", "y", "z"]]