1

次のような配列構造があります。

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

新しい構造が配列の配列になるように内側の 2 つの配列をマージする方法

[
 ['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"]]

順序を失うことなく、どうすれば望ましい結果を得ることができますか。

ヒント、コメント、提案をお願いします。

サンクス。

4

2 に答える 2

5

array.flattenパラメータを取ります:

a.flatten(1) #[["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"], ["e", "E"], ["f", "F"]]
于 2012-04-19T08:51:33.317 に答える
1

これを試して:

a.inject([]){|k,v| k|v}
于 2012-04-19T08:45:18.520 に答える