使用哈希表值ruby填充数组

时间:2015-11-04 22:57:14

标签: arrays ruby

我是红宝石的新手。我想知道是否有简单的方法来执行以下操作: 我有一个多维数组= [[10,12],[15,10]] 我希望用哈希表中的值填充它的键,这些值与数组中的项目相对应。

hash:
10 - [501, 600]
12 - [700]
15 - [101,103]

我其实想要所有组合,输出应该是:     array = [[501,700],[600,700],[101,501],[103,600]]

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

dimensions = [[10,12], [15,10]]

mapping = {
  10 => [501, 600],
  12 => [700, 700],
  15 => [101, 103]
}

results = dimensions.map do |dimension_1, dimension_2|
  values_1 = mapping[dimension_1]
  values_2 = mapping[dimension_2]

  values_1.zip values_2
end.flatten(1)


p results
# returns: [[501, 700], [600, 700], [101, 501], [103, 600]]

我唯一改变的是我在输入中复制700值以对齐数组大小以简化它