为了账号安全,请及时绑定邮箱和手机立即绑定

搜狐JvaaScript面试题:实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。

搜狐JvaaScript面试题:实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。

繁星coding 2018-12-06 17:02:51
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);} 要求:1、只能在指定的位置填写自己的代码,本文件里的其他代码不能修改2、所有题目都不允许添加全局变量名3、本文件应该能在firebug的console里正常执行,并输出结果4、代码最优化,效率最高5、代码注释明确
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

function urlParser(s){
//+++++++++++答题区域+++++++++++
var str=s.split("#")[1];//取到#以后的内容
var jsonStr="";//定义一字符串
if(str.indexOf("?")!=-1){//判断是否有?如果有则前面的内容
var textStr=str.split("?");//取到?前面的内容
if(textStr[0].indexOf("/")!=-1){//判断是否有/
for(var i=0;i<textStr[0].split("/").length-1;i++){
jsonStr+="'"+textStr[0].split("/")[i]+"',";//取到/之间的内容
}
}else{
jsonStr+="'"+textStr[0]+"',";//如果没有/则直接取内容
}
jsonStr="["+jsonStr+"{'type':'"+textStr[1].split("&")[0].split("=")[1]+"','page_size':'"+textStr[1].split("&")[1].split("=")[1]+"'}]";//拼接字符串
}else{//判断是否有?如果没有则取#后面的内容
jsonStr="[{'type':'"+str.split("&")[0].split("=")[1]+"','page_size:'"+str.split("&")[1].split("=")[1]+"'}]";//拼接字符串
}
return jsonStr;
//+++++++++++答题结束+++++++++++
}

写的不是很好

查看完整回答
反对 回复 2018-12-24
?
忽然笑

TA贡献1806条经验 获得超5个赞

参考下 jquery BBQ等类似的组件。

查看完整回答
反对 回复 2018-12-24
  • 2 回答
  • 0 关注
  • 491 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信