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 回答