美文网首页js前端-vue3合集
js关于字符串的面试题

js关于字符串的面试题

作者: 文菇凉666 | 来源:发表于2020-04-26 16:33 被阅读0次

    1、驼峰转换

    <script>

        /*

            var s1 = "get-element-by-id"

            转化为 getElementById

        */

        //第一种方式

        functionchange(str){

            vararr=str.split("-");

            for(vari=1;i<=arr.length-1;i++){

                arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);

            }

            returnarr.join("")

        }

        vars1="get-element-by-id";

        console.log(change(s1))

        //第二种方式

        functionfun(str){

            returnstr.replace(/-\w/g,function(s){

                returns.slice(1).toUpperCase()

            })

        }

        console.log(fun(s1))

    </script>

    2、解析url的params为对象

    <script>

    /*

        let url = 'http://www.domain.com/?user=anonymous&id=123&id=456&city=%E5%8C%97%E4%BA%AC&enabled';

    结果

        { user: 'anonymous',

        id: [ 123, 456 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型

        city: '北京', // 中文需解码

        enabled: true, // 未指定值得 key 约定为 true

        }

    */

        functionchange(url){

            vararr=url.split("?")

            vararr0=arr[1].split("&")

            //定义一个新对象

            varobj={}

            //遍历arr0

            arr0.forEach((item,key)=>{

                vararrobj=item.split("=")

                if(arrobj[1]){

                    arrobj[1]=decodeURIComponent(arrobj[1])

                    //获取到对象所有的键

                    varkeys=Object.keys(obj);

                    //console.log(keys)

                    //存放数据之前应该检测是否存在键值

                    varindex=keys.indexOf(arrobj[0]);

                    if(index==-1){

                        //直接存入

                        obj[arrobj[0]]=arrobj[1];

                    }else{

                        //如果存在情况下 我们要把之前的值拿到 然后拼上现在的值 做成一个数组放里面

                        varstr=(obj[keys[index]]+","+arrobj[1]).split(",")

                        //var newarr=[obj[keys[index]],arrobj[1]];

                        obj[arrobj[0]]=str;

                    }

                }else{

                    obj[arrobj[0]]=true;

                }

            })

            console.log(obj)

        }

        leturl='http://www.domain.com/?user=anonymous&id=123&id=456&city=%E5%8C%97%E4%BA%AC&enabled&user=zhangxiaosan&id=789&id=112&flag=false';

        change(url)

    </script>

    查找字符串中出现最多的字符和个数

    例: abbcccddddd -> 字符最多的是d,出现了5次

    <script>

        functionmore(str){

            //第一步  给它转数组

            vararr=str.split("");

            //定义一个对象  {字符:次数}

            varobj={}

            for(vari=0;i<=arr.length-1;i++){

                if(obj[arr[i]]){

                    obj[arr[i]]++

                }else{

                    obj[arr[i]]=1

                }

            }

            //寻找对象里面的最大值

            varmax=1;

            vark;

            //遍历对象  判断  如果对象的值大于max 给max重新赋值

            for(variinobj){

                if(obj[i]>max){

                    max=obj[i]

                    k=i;

                }

            }

            return"出现次数最多的字符是"+k+"出现的次数为"+max;

        }

        letstr="abcabcabcbbbbbbbbbbccccc";

        console.log(more(str))

    </script>

    实现千隔符号

    // 保留三位小数 parseToMoney(1234.56); // return '1,234.56' parseToMoney(123456789); // return '123,456,789' parseToMoney(1087654.321); // return '1,087,654.321'

    <script>

        varnum=1234567

        varnum1=12345678.789

        functionchange(number){

            //用.分割为小数和整数

            vararr=number.toString().split(".")

            //把arr[0]转换为数组并且翻转

            vararr1=arr[0].split("").reverse();

            //定义一个新数组用来存放改变后的数据

            varnewarr=[]

            arr1.forEach((item,key)=>{

                if(key%3==0&&key!=0){

                    newarr.push(",")

                }

                newarr.push(item)

            })

            varnewstr=newarr.reverse().join("")

            if(arr[1]){

                returnnewstr+"."+arr[1]

            }else{

                returnnewstr;

            }

        }

        console.log(change(num))

        console.log(change(num1))

    </script>

    相关文章

      网友评论

        本文标题:js关于字符串的面试题

        本文链接:https://www.haomeiwen.com/subject/jmcuwhtx.html