ruby – 如何在一行内遍历此哈希?
发布时间:2020-12-17 01:54:47 所属栏目:百科 来源:网络整理
导读:散列中的每个键都有一个值也是一个哈希值. ? ? {? ? ? 100 = {? ? ? ? 1 = 'ruby',? ? ? ? 2 = 'enumerables'? ? ? },? ? ? 50 = {? ? ? ? 3 = 'can',? ? ? ? 4 = 'cause'? ? ? },? ? ? 15 = {? ? ? ? 5 = 'occassional',? ? ? ? 6 = 'insanity'? ? ? }? ? }
散列中的每个键都有一个值也是一个哈希值.
? ? { ? ? ? 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' } 我有它工作,但我的方法使用合并!,并需要创建另一个哈希来存储值.我很想知道它是否可以在一行中完成.我试图使用reduce(),但无法使其工作. 解决方法
这有效:
hash.values.inject(&:merge) 编辑:另一个选项,使用reduce(与注入相同),并注意到tokland的注释,使用符号时会自动调用to_proc: hash.values.reduce(:merge) 然后它变得简洁但非常易读. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |