ハッシュを検索して値を検索しようとしましたが、以前に試したメソッドは機能しませんでした。
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
ハッシュを検索して値を検索しようとしましたが、以前に試したメソッドは機能しませんでした。
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
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
これを試して:
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}