1

我有一个加载游戏列表的数组。目前它的排序如下:

A   B    C
D   E    F

现在我想将其排序如下:

A  D
B  E
C  F

请问我该怎么做?我尝试过使用块甚至切片,但没有成功。

4

2 回答 2

6

简单的切片和转置:

a = %w{A B C D E F}
p a.each_slice(3).to_a.transpose

# => [["A", "D"], ["B", "E"], ["C", "F"]]

each_slice(3) 需要针对源数组和最终矩阵的维度进行调整。

于 2012-10-15T13:00:27.713 回答
3

关注@Jan 的评论

input = "A   B    C\nD   E    F"
output = input.split(/\n+/).map{|e| e.split(/\s+/)}.transpose
p output

输出:

[["A", "D"], ["B", "E"], ["C", "F"]]

如果你提供的只是你提到的一个数组,那就更容易了

input = [ ["A", "B", "C"], ["D", "E", "F"] ]
output = input.transpose
p output
于 2012-10-15T13:07:22.630 回答