结合三个数组

ise*_*sea 0 ruby arrays

我有三个数组阵列.我基本上需要将它们放在彼此之上.

first = [[111, 1], [222, 2], [333, 3]]
second = [[111, 4], [222, 5], [333, 6]]
third = [[111,7], [222, 8], [333, 9]]
Run Code Online (Sandbox Code Playgroud)

理想情况下,如果最终数组看起来像这样会很棒:

final = [[111, 1, 4, 7], [222, 2, 5, 8], [333, 3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)

我看了一下产品方法,希望这可能会有所帮助,但不会.我也试图遍历所有三个,但我想我不是那么聪明.

And*_*all 7

合并它们,然后它们分组,然后根据您的规格进行映射:

(first + second + third).group_by(&:first).map { |k, v| [k, *v.map(&:last)] }
Run Code Online (Sandbox Code Playgroud)