美文网首页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数组题目

    js面试题 js数组 一、按要求分割数组 将"js,数组,分类"字符串数组以/分割 for循环累加 join()把...

  • 荷月八 小程序小记 【字符串判断/js封装/数组拼接/texta

    1、不少JS针对字符串的判断JS验证字符串功能 2、判断是不是字符串 3、js封装 关于Util文件util.js...

  • JavaScript 字符串

    js字符串,js字符串的概述和声明,js字符串的特性,js字符串的常用方法,js字符串的拓展方法,js字符串的案例...

  • 2018-08-22

    今天简单了解了一下关于js对象的知识点。包括JS 数字 JS 字符串 JS 日期 JS 数组 JS 逻辑 JS 算...

  • js数组面试题总结

    JS的一些面试题(数组篇) /Question:统计一个字符串中出现最...

  • js基础面试题

    面试题:延迟加载JS有哪些方式? 面试题:JS数据类型有哪些? 面试题:JS数据类型考题 考题一: 考题二: 面试...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • 数组检测

    检测是否是数组: 数组转字符串: 字符串转换数组: js对象转换成js字符串: js字符串转换成js对象:

  • 前端常见的js数组操作面试题集合

    前端常见的js数组操作面试题集合 一、按要求分割数组 //实例: 将 “刘备,张飞,关羽” 一个字符串数组以“|”...

  • 变量声明提升

    变量声明提升是JS中一个基础的问题,同时也是对JS词法作用域认识的一个提升。在JS面试题中,关于变量声明提升的问题...

网友评论

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

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