合并数组而不会丢失原始顺序,ruby

时间:2012-04-19 08:39:12

标签: ruby arrays merge

我的数组结构如下:

a=[
  [['a','A'],['b','B'],['c','C']],
  [['d','D'],['e','E'],['f','F']]
]

如何合并内部两个数组,以便新结构为数组数组

[
 ['a','A'],['b','B'],['c','C'],['d','D'],['e','E'],['f','F']
]

尝试

a.inject([]){|k,v| v | k} # but order gets changed
=> [["d", "D"], ["e", "E"], ["f", "F"], ["a", "A"], ["b", "B"], ["c", "C"]]

如何在不丢失订单的情况下获得理想的结果。

提示,评论和建议,请?

日Thnx。

2 个答案:

答案 0 :(得分:5)

array.flatten需要一个参数:

a.flatten(1) #[["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"], ["e", "E"], ["f", "F"]]

答案 1 :(得分:1)

试试这个:

a.inject([]){|k,v| k|v}