3

Ruby中按元素顺序对数组进行分组的最简单方法是什么?换句话说,要获取所有第 0 个元素,然后是所有第 1 个元素,等等。

所以如果你从这个开始:

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

...但我想要一种更通用的方法,它适用于任意数量的任意长度的内部数组。

4

1 回答 1

3

我认为Array#transpose是你所追求的:

a = [[1,2], [:a, :b], [:alpha, :beta]]
p a.transpose #=> [[1, :a, :alpha], [2, :b, :beta]]
于 2012-07-31T23:53:10.237 回答