gpt4 book ai didi

ruby - 合并哈希数组中的重复项

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:23 27 4
gpt4 key购买 nike

我在 ruby​​ 中有一个哈希数组:

[
{name: 'one', tags: 'xxx'},
{name: 'two', tags: 'yyy'},
{name: 'one', tags: 'zzz'},
]

我正在寻找任何干净的 ruby​​ 解决方案,这将使它能够简单地合并该数组中的所有重复项(通过合并我的意思是连接 tags 参数)所以上面的例子将转化为:

[
{name: 'one', tags: 'xxx, zzz'},
{name: 'two', tags: 'yyy'},
]

我可以遍历每个数组元素,检查是否有重复项,将其与原始条目合并并删除重复项,但我觉得对此可以有更好的解决方案,并且这种方法有一些注意事项我不知道。感谢您提供任何线索。

最佳答案

我认为是

arr = [
{name: 'one', tags: 'xxx'},
{name: 'two', tags: 'yyy'},
{name: 'one', tags: 'zzz'},
]

merged_array_hash = arr.group_by { |h1| h1[:name] }.map do |k,v|
{ :name => k, :tags => v.map { |h2| h2[:tags] }.join(" ,") }
end

merged_array_hash
# => [{:name=>"one", :tags=>"xxx ,zzz"}, {:name=>"two", :tags=>"yyy"}]

关于ruby - 合并哈希数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24233493/

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