Какой самый эффективный способ получить все ключи хеш-функции из заданного значения.
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"]}