ruby-on-rails - id vs name ruby 的两种方式查找
问题描述
我有一个散列,其中id
是键,name
是值。两者id and value are unique
。
像这样的东西:
h[1] = "ABC"
h[3] = "DEF"
所以,如果给我 1 的键,我可以很容易地返回一个值“ABC”。
我也需要这样做reverse lookup
,这意味着如果给我一个“DEF”的值,我应该返回 3。
此外,代替单个值或单个键来进行查找,
我可能会被提供一个值数组或键数组。
我应该实现两个哈希,每个一个,还是在 ruby 或 rails 中有任何其他方式来实现这一点?
编辑:这个问题与通过哈希值查找键无关。它与不是在 O(n) 时间内使用更好的方法而不是创建两个单独的哈希值进行双向查找有关。
解决方案
您可以通过以下方式获取密钥:
hash.key(value) => key
Hash#key
h = { 1 => 'ABC', 3 => 'DEF' }
puts h.key('DEF')
#=> 3
推荐阅读
- postgresql - 是否可以直接访问 PostgreSQL?
- javascript - 将新道具传递给从地图创建的组件
- python - Matplotlib/Seaborn:使用数据框绘制水平注释子图/轨迹
- sql - 连接三个表以获得特定结果
- asp.net-core - 验证电子邮件地址无效
- spring-boot - JUnit - 如何模拟 MapStruct 嵌套映射器
- json - 如何从打字稿中的json获取连接键列表
- python - GQL 查询限制
- java - java.lang.String类型的值连接无法转成JSONObject Android
- javascript - Xamarin 本地加载 JS 脚本