gpt4 book ai didi

ruby - 如何在一行内遍历这个散列?

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:21 24 4
gpt4 key购买 nike

散列中的每个键都有一个也是散列的值。

    {      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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com