作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
散列中的每个键都有一个也是散列的值。
{ 100 => { 1 => 'ruby', 2 => 'enumerables' }, 50 => { 3 => 'can', 4 => 'cause' }, 15 => { 5 => 'occassional', 6 => 'insanity' } }
For each hash object, I want to discard the top-level key, and replace it with the key and value of the nested hash objects.
{
1 => 'ruby',
2 => 'enumerables',
3 => 'can',
4 => 'cause',
5 => 'occasional',
6 => 'insanity'
}
我可以正常工作,但我的方法使用 merge!
,并且需要创建另一个散列来存储值。我很好奇是否可以在一行中完成。我尝试使用 reduce()
,但无法正常工作。
最佳答案
这个有效:
hash.values.inject(&:merge)
编辑 另一种选择,使用reduce
(与inject
相同),并注意到tokland 的注释,即在以下情况下自动调用to_proc你使用一个符号:
hash.values.reduce(:merge)
然后它变得不仅简洁而且非常可读。
关于ruby - 如何在一行内遍历这个散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997428/
我是一名优秀的程序员,十分优秀!