前端攻城狮学习笔记三:实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。

面试题目

  这是搜狐JavaScript面试题,要求如下:

  实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。

function urlParser(s){
        //+++++++++++答题区域+++++++++++



                
        //+++++++++++答题结束+++++++++++
}

try{
        var url1 = "http://www.abc.com/m/s/#page/2/?type=latest_videos&page_size=20";
        var url2 = "http://www.abc.com/m/s/#type=latest_videos&page_size=20";
        var url3 = "http://www.abc.com/m/s/#page?type=latest_videos&page_size=20";

        console.group();
        console.info( urlParser(url1) );
        console.info( urlParser(url2) );
        console.info( urlParser(url3) );
        console.groupEnd();
        /*------[执行结果]------

        ["page", "2", { "type": "latest_videos", "page_size": 20 }]
        [{ "type": "latest_videos", "page_size": 20 }]
        ["page", { "type": "latest_videos", "page_size": 20 }]
        
        ------------------*/
        
}catch(e){
        console.error("执行出错,错误信息: " + e);
}

分析过程

  这一题考的是基础,没什么好分析的,直接上代码吧。

function urlParser(s){
    //+++++++++++答题区域+++++++++++
    var mArr=[];
    var pArr=[];
    var m=s.split("#")[1],p="";
    if(m.indexOf("?")>-1){
        var temp=m.split("?")[0];
        p=m.split("?")[1];
        mArr=temp.split("/");
        if(mArr[mArr.length-1] === ""){
            mArr.pop();
        }
    }
    else{
        p=m;
    }

    pArr=p.split("&");
    var str="[";
    for(var i=0,l=mArr.length;i<l;i++){
        str+="\""+mArr[i]+"\",";
    }
    str+="{";
    for(var i=0,l=pArr.length;i<l;i++){
        str+="\""+pArr[i].split("=").join("\":\"")+"\",";
    }
    str+="}]";
    return str.replace(",}]","}]");
                
    //+++++++++++答题结束+++++++++++
}

小结

  这一题考查的是JavaScript基础知识,如字符串的分割连接等等,算是比较简单的一题了。当然,简单的题也能写出高质量的代码,期待高手分享。


AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年

本文来自一日成建站教程网https://www.yiricheng.cn/),为广大编程爱好者提供零基础快速搭建博客网站的方法,分享计算机网络、HTML、CSS、JavaScript、PHP、响应式设计以及Python自动化办公的博客文章,另有各类小工具、电子书、免费教程。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

相关阅读  如何循序渐进、有效地学习JavaScript?