"1", "a_1_b" => "2", "a_1_c" => "3", "a_2_a" => "3", "a_2_b" => "-6ren">
gpt4 book ai didi

ruby - 一个哈希中的多个子哈希

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

我有一个散列:

hash = {"a_1_a" => "1", "a_1_b" => "2", "a_1_c" => "3", "a_2_a" => "3",
"a_2_b" => "4", "a_2_c" => "4"}

获取以下子哈希的最佳方法是什么:

[{"a_1_a" => "1", "a_1_b" => "2", "a_1_c" => "3"},
{"a_2_a" => "3", "a_2_b" => "4", "a_2_c" => "4"}]

我希望它们根据正则表达式 /^a_(\d+)/ 按键分组。我将在原始哈希中包含 50 多个键/值对,因此如果有人有任何建议,动态的东西会最好。

最佳答案

如果您只关心中间部分,您可以使用 group_by 完成大部分工作:

hash.group_by do |k,v|
k.split('_')[1]
end.values.map do |list|
Hash[list]
end

# => [{"a_1_a"=>"1", "a_1_b"=>"2", "a_1_c"=>"3"}, {"a_2_a"=>"3", "a_2_b"=>"4", "a_2_c"=>"4"}]

最后一步是提取分组列表并将它们组合回所需的哈希。

关于ruby - 一个哈希中的多个子哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41048587/

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