在Ruby中组合数组

Ari*_*rif 6 ruby

以下数组包含两个数组,每个数组有5个整数值:

[[1,2,3,4,5],[6,7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)

我希望以这样的方式组合它们,即它通过组合索引0,1 ..到4的两个数组的值来生成五个不同的数组.

输出应该是这样的:

[[1,6],[2,7],[3,8],[4,9],[5,10]]
Run Code Online (Sandbox Code Playgroud)

有没有最简单的方法呢?

Ale*_*nko 9

transpose方法怎么样?

a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
#=> [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]] 

a.transpose
#=> [[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
Run Code Online (Sandbox Code Playgroud)

这个方法也可以在将来帮助你,例如:

a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
#=> [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

a.transpose
#=> [[1, 6, 11], [2, 7, 12], [3, 8, 13], [4, 9, 14], [5, 10, 15]]
Run Code Online (Sandbox Code Playgroud)


Urs*_*sus 5

a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
a.first.zip(a.last)
Run Code Online (Sandbox Code Playgroud)