哈希中的每个键都有一个值,该值也是哈希。
{
100 => {
1 => 'ruby',
2 => 'enumerables'
},
50 => {
3 => 'can',
4 => 'cause'
},
15 => {
5 => 'occassional',
6 => 'insanity'
}
}
对于每个哈希对象,我想丢弃顶级键,并将其替换为嵌套哈希对象的键和值。
{
1 => 'ruby',
2 => 'enumerables',
3 => 'can',
4 => 'cause',
5 => 'occasional',
6 => 'insanity'
}
我可以正常工作,但我的方法使用merge!
,并需要创建另一个哈希来存储值。我很好奇是否可以在一行中完成。我尝试使用reduce()
,但无法使其发挥作用。
这有效:
hash.values.inject(&:merge)
Edit:另一种选择,使用reduce
(这与inject
),并注意 tokland 的评论,即当您使用符号时会自动调用 to_proc :
hash.values.reduce(:merge)
那么它不仅变得简洁而且非常可读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)