gpt4 book ai didi

ruby-on-rails - rails 中是否有类似于 in_groups_of 的方法但用于哈希?

转载 作者:行者123 更新时间:2023-12-05 03:58:51 24 4
gpt4 key购买 nike

我想将这个散列分成大小组,假设每组 2 个项目

hash = {'mail1@email.com': {name: 'name 1'},
'mail2@email.com': {name: 'name 2'},
'mail3@email.com': {name: 'name 3'},
'mail4@email.com': {name: 'name 4'},
'mail5@email.com': {name: 'name 5'}
}

想要的结果应该是:

hash1 = {'mail1@email.com': {name: 'name 1'},
'mail2@email.com': {name: 'name 2'}}

hash2 = {'mail3@email.com': {name: 'name 3'},
'mail4@email.com': {name: 'name 4'}}

hash3 = {'mail5@email.com': {name: 'name 5'}}

最佳答案

您可以使用 Enumerable#each_slice ,之后将每个元素映射为 Array#to_h 的哈希值:

hash1, hash2, hash3 = hash.each_slice(2).map(&:to_h)
p hash1 # {:"mail1@email.com"=>{:name=>"name 1"}, :"mail2@email.com"=>{:name=>"name 2"}}
p hash2 # {:"mail3@email.com"=>{:name=>"name 3"}, :"mail4@email.com"=>{:name=>"name 4"}}
p hash3 # {:"mail5@email.com"=>{:name=>"name 5"}}

关于ruby-on-rails - rails 中是否有类似于 in_groups_of 的方法但用于哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57648695/

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