zoukankan      html  css  js  c++  java
  • 前端学习笔记之二——找出重复最多的字符

       利用工作的间隙, 昨天做了论坛里的第二个题目,边思考边查询,温习了很多知识,还学习了很多优秀同学提交的作业,有两个同学的作业印象最深。

       题目如下: 

                      

          印象最深的两个作业,看懂它们还真是花了一番功夫的,不过也学到了挺多。

         第一个同学提交的作业,亮点在于灵活运用了split、join属性,简直太聪明了,而且封装了函数,可重用性强。我比较喜欢在理解了别人的代码之后,再一个字一个字敲下来,这样也顺便加深我的理解和记忆。第一个同学的作业,下面是我一个字一个字敲下来的第一个同学的作业: 

    <script>
        var str = "aabbddeeeeefdxxxd";
        function maxCharOf(){
            var strClone=str,num=0,char="",arr,length;
            while(strClone.lenth>0){
                arr=strClone.split(strClone[0]);
                length=arr.length-1;
                if(length>num){
                    num=length;
                    char=strClone[0];
                }else if(length==num){
                    char+="&"+strClone[0];
                }
            strClone=arr.join("");
           }
            console.log("重复个数最多的字符是"+char+",个数为"+num);
        }
        maxCharOf(str);
    </script>

    ------------------------------------------------------------------

         还有一位同学的作用使用了正则以及replace()方法,做得也挺不错的。

    <script>

         var str = "aabbddeeeeefdxxxd";

         var arr=str.split("");

         str=arr.sort().join("");

         var value="";

         var index=0;

         var reg=/(/w)/1+/g;

         str.replace(reg,function($0,$1){

               if($0.length>index){

                      index=$0.length;

                      value=$1;

               }

         })

         console.log(""重复个数最多的字符是"+value+",个数为"+index");

    </script>

     ------------------------------------------------------------------------

          通过琢磨研究两位同学提交的作业,温习了许多旧知识,像字符串和数组间转换的split()、join()方法,还有数字的排序sort()方法。另外还有正则表达式,replace()方法等等,比较深刻的就小结一下:

          1.正则表达式:/g表示全局匹配,/i表示忽略大小写匹配,/s表示匹配空格,/d表示匹配数字,/n表示匹配换行符等,[]表示匹配中括号内任意一个,()指的是一个匹配子项,若干子项交集才是最终匹配项。

                运用正则进行验证的方法有:

                    reg.test(str);----返回true或者false;

                    str.search(reg);-----返回第一个匹配的字母的下标位置或者-1;

                    str.match(reg);-----返回匹配的内容或者null;如果reg不加/g,那么返回匹配结果及每个子项的集合。

                另外还有,查找替换的方法。str.replace(resouce,replacement);----第一个参数可以是字符串或者正则表达式,第二个参数可以是字符串、函数或者特殊字符如$1等等。 用第二个参数替换第一个参数。   

          2. replace()方法的第一个参数可以是一个正则表达式,第二个参数还可以是一个函数,也可以是像$0、$1、$2、$3……这样的特殊字符,这些特殊字符有着特殊的意义。

                 $0,指的是匹配成功后的整体结果(如果正则中含/g,那就是这次全局匹配完成之后的整体结果,字符串的形式)。

                 $1,匹配成功的第一个子项分组(所谓子项,指的正则表达式中其中一个匹配条件)。

                 $2,匹配成功的第二个子项分组

                 $3,依次类推,一直到$n。

        

  • 相关阅读:
    7zip 自解压安装程序
    修改当前启动菜单项的HyperVisorLaunchType
    VMware 虚拟镜像转 Hyper-V(Win10/2016)
    旋转基础知识
    变换及移动基础知识
    文字及排版章末小结
    文字排版相关
    文字变形及封套扭曲
    LinQ学习笔记.
    PHP笔记-PHP中Web Service.
  • 原文地址:https://www.cnblogs.com/vivian2016/p/5802488.html
Copyright © 2011-2022 走看看