用javascript来统计一个字符串里每个字符出现的频率

并且把频率从高到低排序列出来

其实方法很简单的

单次循环加一个排序即可

目前看到网上一些循环啊正则啊比较啊挺复杂的

 

<script>

 var str ="adadfdfseffserfefsefseeffffftsdg",o={},ar=[],

        i=str.length,t,Inx=0;
while(i--){
    t=str.substr(i,1);
    t in o?++ar[o[t]][1]:ar[o[t]=Inx++]=[t,1];
}
ar=ar.sort(function(a,b){return b[1]-a[1]});

</script>

 

以上所得到的ar就是把每个字符的出现频率排好序了

使用以下遍历代码即可显示出来:


for(i=0;i<ar.length;i++){
    document.write(ar[i][0]+':'+ar[i][1]+'<br>');
}

很简单不是吗