写一个方法来检查一定数量的数组元素是否匹配是一个简单的方法。例如

["dog", "cat", "dog", "dog"].has_matching(3)
# true


["dog", "cat", "dog", "cat"].has_matching(3)
# false

理想情况下,被比较对象的类别无关紧要。

最佳答案

您可以在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

关于ruby - 找出指定数量的数组元素是否匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26502418/

10-13 08:08