2013-07-17 25 views
0

所以我有一個哈希看起來像:如何訪問具有這是一個數組的關鍵,這是一個整數值的哈希

hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" }

雖然當我嘗試做一些像hash[0]只是一個在我的控制檯顯示新行,如果我嘗試hash[0][0]它彈出一個錯誤,說[]方法是未定義的。

現在我想知道如何以我可以做的方式訪問它,如hash["1"],它會返回我"a"

我認爲,因爲它可以讓我用這種方式做哈希,我可以訪問裏面的內容。

+0

抱歉;你必須做'hash [[「1」,「2」,「3」]] –

回答

3

我不知道你爲什麼會想創建這是一個數組的一個關鍵的哈希,但它的工作原理:)

hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" } 

hash[["1", "2", "3"]] 
=> "a" 

你可能要考慮相反:

hash = { "a"=>["1", "2", "3"], "b"=>["4", "5", "6"], "c"=>["7", "8", "9"] } 

hash["a"] 
=> ["1", "2", "3"] 
2

這裏沒有訪問像這樣直接內置的方式,而是通過使用select可以篩選出具有「1」鍵/值對,並得到了它的價值:

hash.select { |key| key.include?("1") }.values.first 

這假定每個整數只存在於一個鍵中。

相關問題