我有一个数组本身包含许多数组,这些数组又包含许多这样的数组:
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"]]
答案 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"]]