我有这样的哈希:
hash = {"jonathan"=> "12", "bob"=> 15 }
然后我有一个像这样的数组:
array = ['jon', 'bob']
我想返回最后在我的数组中包含一个值的键的值。
目标是这样的:
array.each do |name|
if hash.key.include? name
return hash.value
end
编写该代码块的最佳方式是什么?
最佳答案
如果您需要多个值,请使用 Hash#values_at
:
hash = {"jonathan" => "12", "bob" => 15 }
array = ['jon', 'bob']
hash.values_at(*array.select{|key| hash.has_key? key})
# => [15]
使用 Array#&
:
hash.values_at(*(hash.keys & array))
# => [15]
关于ruby - 在 Ruby 中搜索哈希键的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20568367/