题目:有一个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>