2

我有哈希是

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。但没有那么有帮助。我不确定在这里使用什么。

4

2 回答 2

8

hash.select {|k, _| k.include? str}str您要查找的字符串在哪里。

于 2013-02-11T14:49:14.527 回答
6

我会使用类似的东西:

hash = {"stars"=>"in the galaxy", "fin"=>"is for fish", "fish"=>"has fins"}
pattern = 'fi'
hash.select{ |k,v| k[pattern] }
# => {"fin"=>"is for fish", "fish"=>"has fins"}
于 2013-02-11T15:06:57.917 回答