与えられた値からすべてのハッシュキーを取得する最も効率的な方法は何ですか?ruby指定された値に対して複数のハッシュキーを取得する効率的な方法
私は入力値としてハッシュに "BB" を与えるとバックのみ1つのキー配列戻り値として、すべての彼らは、キー(B、C)を取得したい
my_hash = {"a"=>"aa", "b"=>"bb", "c"=>"bb"}
:
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"]}
+1リバースマップソリューションの場合はニース、私は別の+1を追加します。 – Ernest
ベンチマークのための+1 –