如何在一行内遍历这个哈希值?

2024-01-09

哈希中的每个键都有一个值,该值也是哈希。



    {
      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(使用前将#替换为@)

如何在一行内遍历这个哈希值? 的相关文章

随机推荐