2

私はハッシュを持っています

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 を試してみました。しかし、それほど役に立ちませんでした。ここで何を使用するかはよくわかりません。

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 に答える