将数组列转换为ruby行

Rob*_*ews -4 ruby arrays transform

我有一个名为puzzle的数组,我正在尝试返回一个包含第一个数组的新数组

["a", "s", "i", "o", "s", "u", "z"] 
Run Code Online (Sandbox Code Playgroud)

然后下一个数组由数组的第二个索引组成

["k", "o", "t", "t", "e", "r", "s"]
Run Code Online (Sandbox Code Playgroud)

等等.有什么好方法可以做到这一点.我正在考虑使用地图和两个计数器,但无法让它们在不同的时间运行或增加.任何帮助都是极好的.谢谢!

我想从这里返回一个新数组puzzle:

puzzle = [
  ["a", "k", "f", "o", "x", "e", "s"],
  ["s", "o", "a", "w", "a", "h", "p"],
  ["i", "t", "c", "k", "e", "t", "n"],
  ["o", "t", "s", "d", "h", "o", "h"],
  ["s", "e", "x", "g", "s", "t", "a"],
  ["u", "r", "p", "i", "w", "e", "u"],
  ["z", "s", "b", "n", "u", "i", "r"]
]
Run Code Online (Sandbox Code Playgroud)

And*_*eko 5

数组#transpose适合你:

puzzle = [
  ["a", "k", "f", "o", "x", "e", "s"],
  ["s", "o", "a", "w", "a", "h", "p"],
  ["i", "t", "c", "k", "e", "t", "n"],
  ["o", "t", "s", "d", "h", "o", "h"],
  ["s", "e", "x", "g", "s", "t", "a"],
  ["u", "r", "p", "i", "w", "e", "u"],
  ["z", "s", "b", "n", "u", "i", "r"]
]
puzzle.transpose
# => [["a", "s", "i", "o", "s", "u", "z"],
#  ["k", "o", "t", "t", "e", "r", "s"],
#  ["f", "a", "c", "s", "x", "p", "b"],
#  ["o", "w", "k", "d", "g", "i", "n"],
#  ["x", "a", "e", "h", "s", "w", "u"],
#  ["e", "h", "t", "o", "t", "e", "i"],
#  ["s", "p", "n", "h", "a", "u", "r"]]
Run Code Online (Sandbox Code Playgroud)