var a = [1, 2, 3, 1, 1, 1, 2, 2, 3, 3, 3, 3], c = {}; a.forEach(function(b) { c[b] ? c[b]++ : c[b] = 1 }); a.sort(function(b, d) { return c[d] - c[b] }); alert(a);