我有哈希
hash = {"stars"=>"in the galaxy", "fin"=>"is for fish", "fish"=>"has fins"}
现在我有一个find方法
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
。
任何帮助或建议都表示赞赏。我试过hash #select。但是没那么有帮助。我不确定在这里使用什么。
答案 0 :(得分:8)
hash.select {|k, _| k.include? str}
其中str
是您正在寻找的字符串。
答案 1 :(得分: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"}