var arr = ["a","b","a","aa","a","c","b"]; var tmp = {}; arr.forEach(function(str){ tmp[str] = ~~tmp[str] + 1; }); var res = []; for(var i in tmp){ res.push({name: i, num: tmp[i]}); } res.sort(function(obja, objb){ return objb.num - obja.num; }) document.write(JSON.stringify(res));