12

ハッシュ h1 とキー k1 があります。ハッシュ内の指定されたキーの完全なキーと値のペアを返す必要があります。

キー「魚」のように、「魚」=>「水生動物」を印刷する必要があります

@h1、すべてのキーと値のペアを出力します。指定されたキーのキーと値のペアを出力する方法が必要です

私はRubyにかなり慣れていないので、初歩的な質問で申し訳ありません。

4

5 に答える 5

15

Hash#assoc で同様のことができるメソッドがあります。ただし、キーと値は配列で返されるため、簡単にハッシュに変更できます。代わりに Hash#select を使用することもできます。これは、指定されたブロックに従ってハッシュを返します。

h1 = { "fish" => "aquatic animal", "tiger" => "big cat" }
h1.assoc "fish"                       # ["fish", "aquatic animal"]
h1.select { |k,v| k == "fish" }       # {"fish"=>"aquatic animal"}
于 2012-08-21T02:45:20.197 に答える
8

ルビーで >= 1.9

value_hash = Hash[*h1.assoc(k1)]
p value_hash                 # {"fish"=>"aquatic animal"}

ルビー < 1.9

value_hash = Hash[k1, h1[k1]]
p value_hash                 # {"fish"=>"aquatic animal"}
于 2012-08-21T05:01:35.620 に答える
2

最も簡単な答え:

def find(k1)
  {k1 => h1[k1]}
end

これは、必要なものである {'fish' => 'aquatic animal'} を返します。

すでに鍵を持っているので、鍵を取得するためにフープを飛び越える必要はありません! :-)

于 2014-09-04T20:20:34.043 に答える
0

キーと値のペアから新しいハッシュを作成し、puts h1 を使用してその値を出力することで、回避策を得ました。

于 2012-08-21T02:44:02.867 に答える