Sha256: a379da33a2ec2c2cf058a6240dd8e39d29f7059c2950baad7067a3e6cecf8622
Contents?: true
Size: 557 Bytes
Versions: 2
Compression:
Stored size: 557 Bytes
Contents
class Array def mode if self.length <= 1 return self end values = Hash[*self.collect { |x| [x, 0] }.flatten] self.map{ |x| values[x] += 1 } q = values.sort_by{ |key, value| value }.reverse if q[0][1] == q[1][1] modes = [] q.each_cons(2) do |pair| if !pair[1].nil? and pair[0][1] == pair[1][1] modes << pair[0][0] modes << pair[1][0] else break end end modes.uniq.sort else [q[0][0]] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rstat-0.0.2 | lib/rstat/core_ext/array/mode.rb |
rstat-0.0.1 | lib/rstat/core_ext/array/mode.rb |