2017-01-26 6 views
1

私は配列の配列を持っています。配列の第1、第2、第3の要素を連結したい。Ruby:1番目、2番目、このような次元の配列の要素に一致します

例アレイ:

a = [[4, 5, 6], [1, 2, 3], [8, 9, 10]] 
a1 = [[1, 2, 3], [8, 9, 10]] 
a2 = [[4, 5, 6], [1, 2, 3], [8, 9, 10], [11, 21, 31]] 

出力:

out of a: [[4,1,8],[5,2,9],[6,3,10]] 
out of a1: [[1,8],[2,9],[3,10]] 
out of a2: [[4,1,8,11],[5,2,9,21],[6,3,10,31]] 
+2

タイトルを解析できません。 –

答えて

4

使用transpose方法

a.transpose 
=> [[4, 1, 8], [5, 2, 9], [6, 3, 10]] 
1

Array#transpose

[a, a1, a2].map(&:transpose) 
# [ 
# [[4, 1, 8], [5, 2, 9], [6, 3, 10]], 
# [[1, 8], [2, 9], [3, 10]], 
# [[4, 1, 8, 11], [5, 2, 9, 21], [6, 3, 10, 31]] 
# ] 
1

いつでもArray#transposeを使用することができますEnumerable#zip

a.first.zip *a.drop(1) 
    #=> [[4,1,8],[5,2,9],[6,3,10]] 
関連する問題