0

ハッシュを検索して値を検索しようとしましたが、以前に試したメソッドは機能しませんでした。

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
4

2 に答える 2

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
于 2012-10-18T10:01:04.110 に答える
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}
于 2012-10-18T10:02:11.527 に答える