首页 > 解决方案 > 根据相应索引从嵌套数组创建新数组

问题描述

我有一个嵌套数组的数组,我需要创建由相应索引位置的元素组成的新数组。有点难以解释,但这是我开始的内容以及我需要制作的内容:

arrays = [ 
  [["ab", "cd", "ef", "gh"], ["ik", "lm", "no", "pq"],
   ["rs", "tu", "vw", "xy"]],
  [["z1", "23", "45", "67"],["89", "AB", "CD", "EF"],["GH", "IJ", "KL", "MN"]]
]

goal = [
  [["ab", "ik", "rs"], ["cd", "lm", "tu"], ["ef", "no", "vw"], ["gh", "pq", "xy"]],
  [["z1", "89", "GH"], ["23", "AB", "IJ"], ["45", "CD", "KL"], ["67", "EF", "MN"]]
]

标签: arraysrubyiteration

解决方案


您只是转置内部数组:

arrays.map(&:transpose)
#=> [
#     [
#       ["ab", "ik", "rs"], 
#       ["cd", "lm", "tu"], 
#       ["ef", "no", "vw"], 
#       ["gh", "pq", "xy"]
#     ], 
#     [
#       ["z1", "89", "GH"], 
#       ["23", "AB", "IJ"], 
#       ["45", "CD", "KL"], 
#       ["67", "EF", "MN"]
#     ]
#   ]

推荐阅读