Ruby:匹配维度数组中的第一个,第二个,这个等元素

时间:2017-01-26 10:55:31

标签: arrays ruby

我有一个数组数组。我想连接数组的第一,第二,第三元素。

示例数组:

n = randi ([1.29], [1,1])
Randi A = (n + 3, n)
digraph (A);
plot (A);

输出:

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]]

3 个答案:

答案 0 :(得分:4)

使用transpose方法

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

答案 1 :(得分: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]]
# ]

答案 2 :(得分:1)

只要Array#transpose可以使用,Enumerable#zip就可以。

a.first.zip *a.drop(1)
  #=> [[4,1,8],[5,2,9],[6,3,10]]