2017-04-10 45 views
-1

我有值的兩個散列日期:如何兩個哈希有相同的鍵結合成一個二維數組在Ruby中

a = {1=>4, 2=>5, 3=>10} 
b = {1=>43, 2=>25, 3=>28} 

我怎麼會結合他們在Ruby中爲一個二維數組是這樣的:

c = [[1, 4, 43], [2, 5, 25], [3, 10, 28]] 
+0

請閱讀 「[問]」 包括鏈接的網頁, 「[MCVE]」 和「[?多少研究工作,預計堆棧溢出的用戶(http://meta.stackoverflow.com /問題/ 261592)」。我們希望看到你的努力的證據。你嘗試了什麼?你搜索並沒有找到任何東西?你有沒有找到東西,但它沒有幫助?你有沒有嘗試寫代碼?如果不是,爲什麼?如果是這樣,那麼最小的代碼示例顯示了您嘗試的內容以及它爲什麼不起作用?沒有它,看起來你沒有嘗試並希望我們爲你寫信。 –

+0

感謝您的意見天曼,我確實有一些代碼,但我認爲這將是多麼簡單,我相信它會是紅寶石混亂。大量的hash.to_a.transpose涉及我的嘗試。 –

+0

重要的是要明白,SO不是「幫助我解決我的代碼問題」網站,而是未來遇到的其他人的「如何通過代碼解決此問題」網站。因此,記錄問題非常重要,然後顯示演示問題所需的最少代碼。我們希望看到你的努力,因爲它可以幫助他人理解你的過程,將「didja嘗試這個嗎?」短路。鏈,並幫助我們幫助您更快找到解決方案。 –

回答

3

只需使用Enumerable#map

a.map { |k, v| [k, v, b[k]] } 
#=> [[1, 4, 43], [2, 5, 25], [3, 10, 28]] 

或者,如果你有不同的鑰匙在你的散列,使用Hash#merge

a.merge(b) { |_, o, n| [o, n] }.map { |k, v| [k, *v] } 
#=> [[1, 4, 43], [2, 5, 25], [3, 10, 28]] 
相關問題