我有一个哈希看起来是这样的:选择从嵌套的哈希值与未知键
hash = { "data" => {
"Aatrox" => {
"id" => "Aatrox",
"key" => "266",
"name" => "Aatrox"
},
"Ahri" => {
"id" => "Ahri",
"key" => "123",
"name" => "Ahri"
},
"Another name" => {
"id" => "Another name",
"key" => "12",
"name" => "Another name"
},
}
}
我试图从给定键匹配“ID”获得的价值:
def get_champion_name_from_id(key)
filtered = @champion_data["data"].select do | key, champ_data |
Integer(champ_data["key"]) == key
end
end
我使用的选择得到匹配块的项目,然而,返回值是另一个哈希,看起来像这样:
{
"Aatrox": {
"id" => "Aatrox",
"key" => "266",
"name" => "Aatrox"
}
}
我怎样才能避免这种情况,并得到最后一个嵌套散列? 如果传递的关键是266,我想这个哈希:
{
"id" => "Aatrox",
"key" => "266",
"name" => "Aatrox"
}
这哈希值是一个解析的JSON文件的结果,所以没有办法,我可以做filtered["Aatrox"]
得到一个给定值。
这是伟大的,比我试图干净多了,非常感谢! –