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));