所以我有一个类似的哈希:
hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" }
虽然当我尝试执行类似hash[0]
之类的操作时,我的控制台中只显示了一个新行,如果我尝试hash[0][0]
,则会弹出一个错误,指出[]方法未定义。
现在我想知道如何以一种我可以做hash["1"]
之类的方式来访问它,并且它会返回"a"
。
我认为因为它允许我以这种方式进行哈希,所以我可以访问其中的内容。
答案 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
这假设每个整数只存在于一个密钥中。