JSFiddle - React, Tailwind, and code Playground

JavaScript

var array = [ 3, 4, 2, 3, 2, 3, 3, 3, 4, 4];

function countsort(array){
	
    var getCount = function(){
    	var result = {};
        
        for(var i=0; i<array.length; i++){
        	result[array[i]] = (result[array[i]] ? result[array[i]] : 0) + 1;
        }
        
        return result;
    }
    
    var calCount = getCount();
    
    var sorted = [];
    for(var p in calCount){
    	sorted.push(calCount[p] + ':' + p);
    }
    
    sorted = sorted.sort(function(a,b){
        var _a = a.split(':')[0];
        var _b = b.split(':')[0];
        
    	return _a-_b;
    });
    
    var result = '';
    for(var k=sorted.length-1; k>=0; k--){
        var item = sorted[k].split(':');
    	result += Array(item[0]*1+1).join(item[1]);
    }
    
    return result;
}


console.log(countsort(array));