gpt4 book ai didi

ruby - 在 ruby​​ 中执行多个测试的最惯用的方法是什么?

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

我有以下逻辑:

some_array.each do |element|
if element[:apples] == another_hash[:apples] &&
element[:oranges] == another_hash[:oranges] &&
element[:pineapple] == another_hash[:pineapple]
match = element
break
end
end

我遍历键值对列表。如果我可以匹配所需的键(5 个中的 3 个),那么我将元素扔到 var 中供以后使用。如果找到匹配项,我就会跳出循环。

我正在寻找最惯用的方法来优化这个条件。提前谢谢你。

最佳答案

怎么样:

match = some_array.find do |element|
[:apples, :oranges, :pinapple].all? {|key| element[key] == another_hash[key]}
end

如果要从给定的 5 个键中选择具有至少 3 个匹配键的任何元素,则:

match = some_array.find do |element|
element.keys.select {|key| element[key| == another_hash[key]}.size > 2
end

关于ruby - 在 ruby​​ 中执行多个测试的最惯用的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25577589/

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