题目:有一个int型数组,里面有若干数字。要求统计出一共有多少种不同的数字?每种数字出现的频率从少到多排列,频率相同则从小到大排列。
想来想去只写出了下面的方法:
<script> var a=[]; var b={}; var c=[]; var e=[]; for (var i=0;i<100;i++){ var randNum=Math.floor(Math.random()*10); a.push(randNum); }; for (var i=0;i<a.length;i++){ if(!b[a[i]]){ b[a[i]]=1; }else{ b[a[i]]++; } }; for (var i=0;i<a.length;i++){ if(!c[a[i]]){ c[a[i]]=1; }else{ c[a[i]]++; } }; var d=c.sort(function(m,n){ return m-n; }); for (var i=0;i<d.length;i++){ for (j in b){ if (d[i]==b[j]){ e.push(j); delete b[j]; break; } } } console.log(e) </script>