【发布时间】:2011-05-20 09:01:39
【问题描述】:
从给定值中获取所有哈希键的最有效方法是什么。
my_hash = {"a"=>"aa", "b"=>"bb", "c"=>"bb"}
我想将哈希“bb”作为输入值,并将它们的所有键 (b,c) 作为数组返回
只返回一个键:
my_hash.index("bb")
# returns only b
这可行,但似乎效率低:
my_hash.select{|k,v| v == 'bb' }.map{|i| i[0] }
# returns b and c
我已阅读所有文档。我觉得我缺少一些明显的东西。
谢谢!
更新:
我最终切换了哈希创建的键和值,并为值使用了一个数组。这是一个更有效的解决方案。如果需要,请参阅下文,了解进行价值查找的最佳方法。
新结构:
my_hash = {"aa"=>["a"],"bb"=>["b","c"]}
【问题讨论】:
标签: ruby