编写用于检查特定数量的数组元素是否匹配的方法的简单方法是什么。例如
["dog", "cat", "dog", "dog"].has_matching(3)
# true
和
["dog", "cat", "dog", "cat"].has_matching(3)
# false
理想情况下,被比较对象的类别并不重要。
答案 0 :(得分:3)
您可以向Array
添加方法:
class Array
def check_if_minimum_duplicates(min_dup)
group_by{|el| el }.any?{|k, v| v.count >= min_dup }
end
end
并像这样使用它:
irb(main):006:0> puts ["dog", "cat", "dog", "dog"].check_if_minimum_duplicates(3)
true
=> nil
irb(main):007:0> puts ["dog", "cat", "dog", "cat"].check_if_minimum_duplicates(4)
false
=> nil