1, "f"=>"01"}, {"g"=>2, "f"=>"02"}, {"g"=>2, "f"=>"03"}, {"g"=>3, "f"=>"04"}, {"g"=-6ren">
gpt4 book ai didi

arrays - 具有相同值的 ruby​​ 散列数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:25 25 4
gpt4 key购买 nike

我有一个这样的数组

[{"g"=>1, "f"=>"01"}, {"g"=>2, "f"=>"02"}, {"g"=>2, "f"=>"03"}, {"g"=>3, "f"=>"04"}, {"g"=>4, "f"=>"05"}, {"g"=>4, "f"=>"06"}]

我必须分成具有相同 "g" 值的组,例如

[{"g"=>1, "f"=>"01"}],
[{"g"=>2, "f"=>"02"}, {"g"=>2, "f"=>"03"}],
[{"g"=>3, "f"=>"04"}],
[{"g"=>4, "f"=>"05"}, {"g"=>4, "f"=>"06"}]

我试图a.map{|a| a['g']}.uniq 找到所有唯一的 "g",然后对结果数组使用 each 函数以应用 select 到第一个数组,但没有产生任何结果。有人知道如何对数组进行分组吗?

最佳答案

input = [{"g"=>1, "f"=>"01"}, {"g"=>2, "f"=>"02"}, {"g"=>2, "f"=>"03"}, {"g"=>3, "f"=>"04"}, {"g"=>4, "f"=>"05"}, {"g"=>4, "f"=>"06"}]

grouped = input.group_by { |hash| hash["g"] }
# => {
# 1=>[{"g"=>1, "f"=>"01"}],
# 2=>[{"g"=>2, "f"=>"02"}, {"g"=>2, "f"=>"03"}],
# 3=>[{"g"=>3, "f"=>"04"}],
# 4=>[{"g"=>4, "f"=>"05"}, {"g"=>4, "f"=>"06"}]
# }

然后调用 grouped.values

得到你的解决方案

关于arrays - 具有相同值的 ruby​​ 散列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50400032/

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