首页 > 解决方案 > 如何获得哈希的某些值?

问题描述

在以下嵌套哈希中,

hash = {a: 2, b: 4, c: {name: "John", id: 12, age: 33}}

我想返回哈希值:

{:name => "John", :id => 12, :age => 33}

我想返回一个哈希。我认为下面的代码可以完成这项工作:

hash.select! {|_k, v| v.is_a?(Hash)} 
# => {:c => {:name => "John", :id => 12, :age => 33}}

但我得到了两个 k/v 对。我错过了代码上的任何内容吗?我怎样才能达到上面提到的返回值?

标签: rubyhash

解决方案


我会做类似的事情:

hash.values.find(&Hash.method(:===))
#=> {:name=>"John", :id=>12, :age=>33}

推荐阅读