Method: Nuggets::Array::ModeMixin#mode

Defined in:
lib/nuggets/array/mode_mixin.rb

#mode(all = false, &block) ⇒ Object

call-seq:

array.mode => anObject
array.mode(+true+) => anArray

Returns the mode of the values in array (via #histogram).

If parameter true is passed, an Array of all modes is returned.



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/nuggets/array/mode_mixin.rb', line 45

def mode(all = false, &block)
  hist, modes = histogram(&block), []
  freq = hist.values.max

  hist.each { |key, value|
    if value == freq
      modes << key
      break unless all
    end
  }

  all ? modes : modes.first
end