url中的参数提取为对象,这样的写法不对么

面试碰到这个问题,我按照这个思路写的方案,他最后让我回去再看看,我想问下,还有什么更好的实现方式么?


var url = "http://www.xxxx.com/index.html?keya=a&b=b&c=c";   

function parseQueryString(argu){

  var str = argu.split('?')[1];

  var result = {};

  var temp = str.split('&');

  temp.forEach(function(item){ 

    var temp2 = item.split('=');

    result[temp2[0]] = temp2[1];

  })

  return result;

}

console.log(parseQueryString(url))


慕盖茨4494581
浏览 678回答 3
3回答

犯罪嫌疑人X

可以用正则/(1+)=1/g另外注意一个建可能有多个值比如?a=1&a=2这种要搞成一个数组=&? ↩

牛魔王的故事

“让我回去再看看”,怕是少了个 decodeURIComponent?书上有一段:function urlArgs() {    var args = {}    var query = location.search.substring(1)    var pairs = query.split("&")    for (var i = 0; i < pairs.length; i++) {        var pos = pairs[i].indexOf("=")        if (pos == -1) continue        var name = pairs[i].substring(0, pos)        var value = pairs[i].substring(pos + 1)        value = decodeURIComponent(value)        args[name] = value    }    return args}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript