通过键名称从 ruby 中的多维哈希中提取特定值
假设我有一个多维哈希,并且在其中一个子哈希中我有一个 key=>value 对,我需要通过键检索它。我该怎么做?
示例散列:
h={:x=>1,:y=>2,:z=>{:a=>{:k=>"needle"}}}
h={:k=>"needle"}
键总是:k,我需要得到“needle”
我注意到ruby 1.8中没有用于散列的“展平”函数,但如果它在那里,我想我会做
h.flatten[:k]
我想象的我需要为此编写一个递归函数吗?
谢谢
let's say i have a multidimensional hash, and in one of the subhashes i have a key=>value pair which i need to retrieve by key. how can i do it?
example hashes:
h={:x=>1,:y=>2,:z=>{:a=>{:k=>"needle"}}}
h={:k=>"needle"}
key is always :k, and i need to get "needle"
i noticed that there is no "flatten" function for hashes in ruby 1.8, but if it'd be there, i imagine i'd just do
h.flatten[:k]
i imagine i need to write a recursive function for that?
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您始终可以编写自己的特定于任务的 Hash 扩展,它会为您完成肮脏的工作:
您可以非常简单地使用它:
You can always write your own mission-specific extension to Hash which does the dirty work for you:
You can use this quite simply:
如果您只需要获取键值,但不知道键有多深,请使用此代码片段
If you need simply to fetch key value, but don't know how deep the key is, use this snippet