Ruby:匹配散列中的键以返回相应的键+值

标签 ruby hash

我有散列是

hash = {"stars"=>"in the galaxy", "fin"=>"is for fish", "fish"=>"has fins"}

现在我有了一个查找方法

def find(value)
    if hash.empty? == true
      return {}
    else
     return  hash
    end
  end

现在我想做的是 - 当执行 find("fi") 时,我希望该方法返回所有在键中包含 fi 的散列键+值.所以这样的输出看起来像 -

{"fin"=>"is for fish", "fish"=>"has fins"}

请注意“fi”不是固定的。它可以是任何东西。由于 Find 方法接受参数 value

如有任何帮助或建议,我们将不胜感激。我试过散列#select。但不是很有帮助。我不太确定在这里使用什么。

最佳答案

hash.select {|k, _| k.包括? str 其中 str 是您要查找的字符串。

关于Ruby:匹配散列中的键以返回相应的键+值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814440/

相关文章:

ruby - 如何处理 watir 中弹出的安全警报

ruby - 使用一对值作为键

ruby-on-rails - 由于字段不存在而创建不保存记录

c++ - 散列指针作为 C++ STL 中 unordered_map 的键

c - 使用C linux在链表中进行哈希搜索

c# - 在 Azure 上上传的 blob 的 MD5 哈希与本地计算机上的同一文件不匹配

ruby-on-rails - Rails 和 I18n : localized templates vs localized string

python - 为什么 ruby​​ 和 python 数学计算不同

ruby-on-rails - ruby 哈希 : can't convert String into Integer

algorithm - 使用哈希在数据库中存储密码的替代方法