Find Mode from Array

Finds the mode(s) from any given array

by LyndseyB

JavaScript

var methods = (function() {    
  
    var sortedNumbers = {},
        highestNumber = 0,
        mode = [];
    
    function _sort(arr) {        
        
        arr.forEach(function(n) {
            sortedNumbers[n] = (sortedNumbers[n] || 0) + 1;
        });  
        
        return sortedNumbers;
    }
    
    function findMode(numbers) {             
        sortedNumbers = _sort(numbers);    

        for(var number in sortedNumbers) {            
            
            if(sortedNumbers[number] > highestNumber) {      
                mode = [];
                mode.push(number);
                highestNumber = sortedNumbers[number];                   
            } else if(sortedNumbers[number] === highestNumber) {
                mode.push(number);
            }
        }       
        
        return mode;
    }
       
    return {
        findMode : findMode
    }    
    
})();

console.log(methods.findMode([6, 1, 4, 4, 3, 1, 4, 3, 6, 6, 7]));