0

所以我有一个看起来像这样的哈希:

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

虽然当我尝试做一些事情时hash[0],我的控制台中会出现一个新行,如果我尝试hash[0][0]它会弹出一个错误,指出 [] 方法未定义。

现在我想知道如何以一种可以执行类似操作的方式访问它hash["1"],它会返回给我"a".

我假设因为它让我以这种方式制作哈希,所以我可以访问里面的内容。

4

2 回答 2

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"]
于 2013-07-17T03:26:24.883 回答
2

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

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

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

于 2013-07-17T03:26:12.540 回答