一道js面试题

 当然这道面试题并不一定就能在你面试的时候遇到,但是不怕一万就怕万一,会的多一些还是好的。

问:怎么判断一串字符中哪个字符出现的最多,最多几次或者这串字符分别有哪些,每个字符出现了几次。写你请出运算代码。

 1  <script type="text/javascript"> 
 2         var str = 'asdfssaaasasasasaasassaassaa';
 3         var json = {};//定义一个json对象
 4         //判断该字符串截取出来的这一个字符是不是在join对象中存在
 5         for (var i = 0; i < str.length; i++) {
 6 
 7             if (!json[str.charAt(i)]) {
 8                 //如果不存在,则以该单字符作为join对象的键值,将其values赋值为1
 9                 json[str.charAt(i)] = 1;
10             } else {
11                 //如果存在,则找到该键值对应的value值,并且自增
12                 json[str.charAt(i)]++;
13             }
14         };
15         //定义一个最大值,可以保存出现次数最多的字符的次数
16         var iMax = 0;
17         //可以保存出现次数最多的那个字符
18         var iIndex = '';
19         //用打擂算法循环输出join中保存的数据
20         for (var i in json) {
21             //每一个i都代表着一个join对象的键值(也就是字符)
22             if (json[i] > iMax) {
23                // iMax = json[i];
24                 //  iIndex = i;
25                 //打印出每个字符出现的次数为几次
26                 alert(i+'字符,出现了'+json[i]+'次');
27             }
28         }
29       //  alert('出现次数最多的是:' + iIndex + '出现' + iMax + '次')
30     </script>

感谢编写这道题以及研究这道题和分享这道题为此题做出贡献的大神!

原文地址:https://www.cnblogs.com/smbk/p/5558180.html