gpt4 book ai didi

ruby - 有什么方法可以检查数组中的哈希值是否包含 ruby​​ 中的相似键值对?

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

比如我有

array = [ {name: 'robert', nationality: 'asian', age: 10},
{name: 'robert', nationality: 'asian', age: 5},
{name: 'sira', nationality: 'african', age: 15} ]

我想得到的结果是

array = [ {name: 'robert', nationality: 'asian', age: 15},
{name: 'sira', nationality: 'african', age: 15} ]

因为有 2 个 Robert 具有相同的国籍。

如有任何帮助,我们将不胜感激。

我试过 Array.uniq! {|e| e[:name] && e[:nationality] } 但我想将两个数字都添加到 10 + 5

的两个哈希值中

P.S:数组可以有 n 个哈希值。

最佳答案

我会从这样的事情开始:

array = [ 
{ name: 'robert', nationality: 'asian', age: 10 },
{ name: 'robert', nationality: 'asian', age: 5 },
{ name: 'sira', nationality: 'african', age: 15 }
]
array.group_by { |e| e.values_at(:name, :nationality) }
.map { |_, vs| vs.first.merge(age: vs.sum { |v| v[:age] }) }
#=> [
# {
# :name => "robert",
# :nationality => "asian",
# :age => 15
# }, {
# :name => "sira",
# :nationality => "african",
# :age => 15
# }
# ]

关于ruby - 有什么方法可以检查数组中的哈希值是否包含 ruby​​ 中的相似键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748498/

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