如何将“正方形”二维数组映射到切换坐标? (红宝石)

时间:2016-08-14 23:32:57

标签: ruby multidimensional-array

提前感谢您的时间 - 我一直在网上看,我不确定我是否使用正确的词语来提出这个问题。

我有

original_array = [[0,1,2],[3,4,5],[6,7,8]]

我想映射到看起来像

的结果

new_array = [[0,3,6],[1,4,7],[2,5,8]]

基本上我只需要将每个数组的第一个索引重新分组到它自己的数组中,对于第二个数组则相同,依此类推。

我觉得可能有一种更简单的方法可以做到这一点,但我似乎找不到任何东西。目前,我提出的最好的是

    new_array = []
    original_array.map { |i, j, k| 
      new_array << i
      new_array << j
      new_array << k
    }

有关如何简化这一点的任何想法?再次提前感谢任何回复,如何使这个问题更清晰的提示,等等。

1 个答案:

答案 0 :(得分:2)

您正在寻找transpose方法。

original_array = [[0,1,2],[3,4,5],[6,7,8]]
original_array.transpose
=> [[0, 3, 6], [1, 4, 7], [2, 5, 8]]

查看docs了解详情。