我有一个散列,其中 id
是键,name
是值。 id 和 value 都是唯一的
。
像这样:
h[1] = "ABC"
h[3] = "DEF"
所以,如果我得到 key 1,我可以很容易地返回一个值“ABC”。
我还需要做一个反向查找
,这意味着如果我得到一个值“DEF”,我应该返回 3。
此外,不是使用单个值或单个键来进行查找,
我可能会得到一个值数组或键数组。
我应该实现两个哈希,每个哈希一个,还是在 ruby 或 rails 中有任何其他方法可以实现这一点?
编辑:这个问题与在散列中通过值查找键无关。它与使用比创建两个单独的散列不同的更好方法在 O(n) 时间内进行双向查找有关。
最佳答案
您可以使用 Hash#invert如下所示,
reversed_h = h.invert
reversed_h['DEF']
# => 3
关于ruby-on-rails - id 与 name ruby 的两种查找方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520813/