2012-10-18 96 views
0

試圖通過哈希搜索值,沒有任何方法我以前嘗試過的工作。搜索Ruby散列值?

def input 
    @search_term = STDIN.gets.chomp 
end 

def execute 
    @reader.searchKey(@search_term).each{|b| puts b} 
end 

def searchKey(search_term) 
    puts books_catalogue.has_value?(search_term) 
end 
+0

發佈你的錯誤。還要詳細解釋你所嘗試過的東西。 –

+3

對不起,但這段代碼片段太模糊瞭解。 – halfelf

+0

你想獲得散列值作爲參數傳遞的每個密鑰?如果是這樣,只要看看我的答案,否則,你可以添加一些解釋? – louiscoquio

回答

1
hash = {foo: 'val', bar: 'other_val', bak: 'val'} 
selected_hash = hash.select { |k,v| v == 'val' } # => {foo: 'val', bak: 'val'} 
selected_hash.keys # => [:foo, :bak] 

所以該方法是這樣的:

def search_key(value) 
    @hash.select { |k, v| v == value }.keys 
end 
0

試試這個:

hash = {a: 1, b: 2, c: 2} 
value_to_search_for = 2 
hash.select {|_,value| value == value_to_search_for} 
# output is {b: 2, c: 2}