我有一个加载游戏列表的数组。目前它的排序是这样的:
A B C
D E F
现在我想像下面这样排序:
A D
B E
C F
请问我该怎么做?我尝试过使用块甚至切片,但没有成功。
简单的切片和转置:
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) 需要根据源数组和最终矩阵的维度进行调整。
按
@Jan评论
input = "A B CnD 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