gpt4 book ai didi

Ruby - 如何按一个值过滤哈希数组,然后在其他值与输入匹配时返回 true?

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

我正在研究一个我认为是简单的代码 war 问题,但我在使用枚举数来解决这个问题时遇到了问题。

这是我的数据数组

data = [
{age: 40, sex: :m},
{age: 24, sex: :f},
{age: 56, sex: :m},
{age: 45, sex: :m},
{age: 23, sex: :f}
]

还有问题

编写一个方法,如果所有与性别值匹配的项目的年龄都大于提供的值,则返回 true。

方法应该是这样的

def check_ages?(data, sex, older_than)

#Select all hashes matching param(sex) and then check if remaining age values are greater than param(older_than) returning true if so

end

check_ages?(data, :f, 22) # 应该是真的

check_ages?(data, :m, 50) # 应该是假的

我一直在疯狂地尝试使用嵌套选择来过滤哈希值,如果使用其他方法来匹配年龄值...将不胜感激

PS 我是 ruby​​ 的新手,当然这是一个相当愚蠢的问题......只是无法弄清楚语法

最佳答案

我认为这就是您所需要的:

def check_ages?(data, sex, older_than)
raise ArgumentError, "'sex' must equal ':m' or ':f'" unless [:m, :f].include? sex
data.all? {|h| h[:sex] != sex || h[:age] > older_than}
end

关于Ruby - 如何按一个值过滤哈希数组,然后在其他值与输入匹配时返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026030/

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