gpt4 book ai didi

ruby - 如何将一组相似的哈希值限制为具有多个相同键 :value pair (details inside) 的哈希值

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

我有一个这样的数组

arr = [ { name: "Josh", grade: 90 }, {name: "Josh", grade: 70 }, 
{ name: "Kevin", grade: 100 }, { name: "Kevin", grade: 95 },
{ name: "Ben", grade: 90 }, { name: "Rod", grade: 90 },
{ name: "Rod", grade: 70 }, { name: "Jack", grade: 60 } ]

我希望删除 Ben 和 Jack,因为他们在此数组中只有一条记录。完成这项工作最优雅的方法是什么?我可以手动检查它,但是有更好的方法吗?就像对面的

arr.uniq! { |person| person[:name] }

最佳答案

arr.reject! { |x| arr.count { |y| y[:name] == x[:name] } == 1 }

O(n) 解决方案:

count_hash = {}
arr.each { |x| count_hash[x[:name]] ||= 0; count_hash[x[:name]] += 1 }
arr.reject! { |x| count_hash[x[:name]] == 1 }

关于ruby - 如何将一组相似的哈希值限制为具有多个相同键 :value pair (details inside) 的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879428/

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