Какой самый эффективный способ получить все хэш-ключи от заданного значения.
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
Я прочитал все документы. Я чувствую, что там что-то очевидное, что мне не хватает.
Спасибо!
Update:
В итоге я переключил ключи и значения для создания хэша и перешел к массиву для значений. Это более эффективное решение. См. Ниже, где можно найти лучшие способы поиска ценности, если вам нужно.
Новая структура:
my_hash = {"aa"=>["a"],"bb"=>["b","c"]}