2015-11-04 135 views
0

我是ruby的新手。我想知道是否有簡單的方法來做到以下幾點: 我有一個多維數組= [[10,12],[15,10]] 我想用他的密鑰對應的哈希表中填充值到數組中的項目。用哈希表值填充數組ruby

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

其實我是想所有的組合,輸出應該是: array = [[501,700],[600,700],[101,501],[103,600]]

+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值來對齊陣列大小以簡化它