我与嵌套哈希玩弄,我试图找出如何时,我的哈希是一个嵌套一个获取多个密钥:如何使用嵌套散列获取多个散列键?
imahash = { :id => { :name => "Alma", :email => "[email protected]" },
:stats => { :gender => "Female" },
:location => { :city => "Freeport", :state => "Maine" }
}
我知道如何检索嵌套的值,并键入哈希名称将转储所有的键和值。但我想要做的是获取特定的键,例如:name和:gender only。或者:名称和:仅限城市。
这可能吗?因为从我发现的情况来看,你似乎只能一次检索一个键或一次检索所有键的散列值。
我所需的输出会是这样的:
=> { :id => { :name => "Alma" }, :location => { :city => "Freeport" } }
是啊,如果一个元组是什么,我认为这是(?只是一个有序列表右侧) ,然后创建一个新的数组(或在mportiz的答案,一个新的)有效。出于兴趣,有没有办法在不创建新散列/数组的情况下获取输出? – Murmur
如果您创建一个函数来接收用于导航嵌套散列(类似于xml文档的xpath)的“散列路径”数组,则只能引用imahash一次。我怀疑你可以不创建一个新的散列/数组。如果你要求效率的原因,这是过早优化恕我直言。 – peakxu
好的,我明白了。是的,我主要是出于提高效率的原因。这说明了一切,谢谢。 – Murmur