ruby - 在 Ruby 中搜索哈希键的简洁方法

标签 ruby arrays hash

我有这样的哈希:

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/

相关文章:

java - 数组克隆不起作用

javascript - 无法访问数组元素

javascript:找到正确的索引以将对象放置在已排序的对象数组中

Scala - TrieMap 与 Vector

ruby-on-rails - 将 ruby​​ 哈希转换为 html 列表

ruby SimpleOAuth 错误

ruby - Zookeeper 或 Kafka 连接错误,显示 Kazoo::VersionNotSupported 错误

javascript - cpp 和 javascript 中的双重运算是否相同?

ruby-on-rails - 当我运行 heroku run rake db :migrate in production 时出现此错误

ruby-on-rails - 在 rails、carrierwave 和 mongoid 中上传图像时出现问题