2012-07-31 48 views
2

Ruby中按元素顺序对数组进行分组的最简单方法是什么?换句话说,让所有的零元素,那么所有的1号元素等Ruby中按元素顺序对数组进行分组的最简单方法是什么?

所以,如果你开始使用此:

[[1,2], [:a, :b], [:alpha, :beta]] 

你会得到这样的:

[[1, :a, :b], [2, :b, :beta]] 

我可以zip做到这一点:

arr = [[1,2], [:a, :b], [:alpha, :beta]] 
arr[0].zip(arr[1], arr[2]) 

...但我想这会为任何数量的工作更通用方式任何长度的内部阵列。

回答

2

我觉得Array#transpose是你追求的:

a = [[1,2], [:a, :b], [:alpha, :beta]] 
p a.transpose #=> [[1, :a, :alpha], [2, :b, :beta]] 
+1

这绝对是我想要的。谢谢。而且...... **当然,我爱Ruby。我**知道**会有一个好方法。 :) – 2012-08-01 13:12:29