2015-02-10 62 views
1

鉴于我有两个数组看起来像这样的:在Ruby中合并数组的习惯性方式?

array1 = [ 
    [1, 2], 
    [3, 4], 
] 

array2 = [:a, :b] 

什么是它们合并成一个新的数组,看起来像最好的办法:

[ 
    [1, 2, :a], 
    [3, 4, :b], 
] 

我希望有一种方法可以做到这没有迭代其中一个数组,并使用它的索引来从另一个数组中获取一个元素......是否有更好的ruby方法?

回答

6

试试这个:

array1.zip(array2).map(&:flatten) #=> [[1, 2, :a], [3, 4, :b]] 
0
(array1.transpose+[array2]).transpose 
    #=> [[1, 2, :a], [3, 4, :b]]