如何访问具有数组键和值为整数的键的哈希

时间:2013-07-17 03:20:49

标签: ruby

所以我有一个类似的哈希:

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

虽然当我尝试执行类似hash[0]之类的操作时,我的控制台中只显示了一个新行,如果我尝试hash[0][0],则会弹出一个错误,指出[]方法未定义。

现在我想知道如何以一种我可以做hash["1"]之类的方式来访问它,并且它会返回"a"

我认为因为它允许我以这种方式进行哈希,所以我可以访问其中的内容。

2 个答案:

答案 0 :(得分: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"]

答案 1 :(得分:2)

没有直接的内置方法可以访问这样的内容,但是使用select可以过滤出具有“1”的键/值对并获取它的值:

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

这假设每个整数只存在于一个密钥中。