zoukankan      html  css  js  c++  java
  • 找出字符串中出现次数最多的字母和出现次数,超精简版,欢迎拍板

    <script type="text/javascript">
        var a = "testthisprojecthelloworld!";
        var b = {};
        var c = null;
        for (var i in a) {
            !isNaN(b[a[i]]++) || (b[a[i]] = 1);
            c = b[a[i]] > (b[c]==undefined?"0":b[c]) ? a[i] : c;
        }
        alert(c + ":" + b[c]);
    //出自http://www.cnblogs.com/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!
    </script>

    isNaN(x) 如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。

    i是index

    如果第一次循环

    a[i] 是 't'

    b[a[i]] 是 b['t'] 访问下标是't'的对象

    b[a[i]]++ 不是数字的++始终为NaN

    isNaN(b[a[i]]++) 是 true 因为b没有下标是t的对象 b现在是空的

    !isNaN(b[a[i]]++) 是 false

    !isNaN(b[a[i]]++) || (b[a[i]] = 1); 或运算符|| 一个为真就是真 左边表达式为false 所以接着执行右边的表达式 可以看成条件语句的简写 if(isNaN(b[a[i]]++)){b[a[i]] = 1}

     (b[a[i]] = 1); 左边的不成立 就设置b的下标 b['t'] = 1;

    再次循环如果遇到t就会成功执行t++ 如果没有就继续设置下标

     这个例子没有考虑空格,特殊字符等。//出自http://www.cnblogs.com/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

  • 相关阅读:
    2,ActiveMQ-入门
    1,Java消息服务-JMS
    2,Executor线程池
    Thymeleaf-模板引擎
    1,线程基础
    8,HashMap子类-LinkedHashMap
    7,HashMap
    ncnn编译安装-20190415
    VS2015 C#项目工程配置emgucv依赖的方法
    java jni 调用c++ opencv代码成功范例
  • 原文地址:https://www.cnblogs.com/ahjesus/p/2759077.html
Copyright © 2011-2022 走看看