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

各大互联网公司2014前端笔试面试题–JavaScript篇(求解)

各大互联网公司2014前端笔试面试题–JavaScript篇(求解)

慕容708150 2018-07-31 10:25:15
22.有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中,如{a:’1′, b:’2′, c:”, d:’xxx’, e:undefined}。答案:1 function serilizeUrl(url) {2     var result = {};3     url = url.split("?")[1];4     var map = url.split("&");5     for(var i = 0, len = map.length; i < len; i++) {6         result[map[i].split("=")[0]] = map[i].split("=")[1];7     }8     return result;9 }
查看完整描述

2 回答

?
ibeautiful

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

先通过分割'?'找到参数名和参数值部分:

url = url.split("?")[1];

又通过:

var map = url.split("&");

将每个键值对分割开,形成数组,放入循环:

for(var i = 0, len = map.length; i < len; i++) {
    result[map[i].split("=")[0]] = map[i].split("=")[1];
}

在循环中,将键值数组的第一位当键,第二位当值,存入对象中:

Object {a: "1"}

Object {a: "1", b: "2"}

Object {a: "1", b: "2", c: ""}

Object {a: "1", b: "2", c: "", d: "xxx"}

Object {a: "1", b: "2", c: "", d: "xxx", e: undefined}

最后返回。


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 1 关注
  • 1083 浏览
慕课专栏
更多

添加回答

举报

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