在ruby中获取给定键的键值哈希对

Him*_*imz 9 ruby

我有一个哈希值h1和密钥k1.我需要为散列中的给定键返回完整的键值对.

喜欢关键'鱼'我需要打印'鱼'=>'水生动物'

@ h1,打印所有键值对.我需要打印给定键的键值对的方法

我对红宝石很新,所以对于这个虚假的问题感到抱歉.

hal*_*elf 11

有一种方法,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"}
Run Code Online (Sandbox Code Playgroud)


zlo*_*dka 7

在红宝石> = 1.9

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

在红宝石<1.9

value_hash = Hash[k1, h1[k1]]
p value_hash                 # {"fish"=>"aquatic animal"}
Run Code Online (Sandbox Code Playgroud)