如何使用js的方法,解决问题,目前刚学对象,数组?

编写函数对URL进行处理 "http://www.xxx.com/?name=bf&age=23&from=baidu" ,想办法获取url的参数信息(?后边) 包装成对象{name:'bf',age:23,form:'baidu'}
var obj = {};
var arr = [];
var str = `http://www.xxx.com/?name=bf&age=23&from=baidu`;
var k = str.split('?');
var l = k[1].split('&')
var z = [];
console.log(k);
console.log(l);
// 拆分数组 把数组l拆了
for (var i = 0; i < l.length; i++) {
    z[i] = l[i].split('=');
}
// 数组z是双数组
for (var j = 0; j < z.length; j++) {
    for (var p = 0; p < z[j].length; p++) {
        console.log(z[j][p]);
    }

    // obj.cunchu = z[j][p];
}
console.log(obj);
运我只能把里面的都遍历出来
通过?拆分数组,拆开后,在通过&拆分数组,然后再通过=拆分数组. 之后就不会了
正确结果

你题目的解答代码如下:

    var url = "http://www.xxx.com/?name=bf&age=23&from=baidu";
    var obj = {};
    var arr = url.split("?")[1].split("&");
    for (var i = 0, len = arr.length; i < len; i++) {
        var nv = arr[i].split("=");
        obj[nv[0]] = nv[1];
    }
    console.log(obj);

如有帮助,望采纳!谢谢!

用正则编码匹配下压入键值对就行,代码如下

img

<script>
    var str = `http://www.xxx.com/?name=bf&age=23&from=baidu&name=abc`;
    var s = str.split('?').pop();//如果获取当前浏览器地址栏查询参数直接location.search.substring(1)就行
    var kv = {};
    var m, reg = /([^=&]+)=([^&]+)/gi;
    while (m = reg.exec(s)) {
        var key = m[1].toLowerCase();
        if (kv[key]) kv[key] += "," + m[2]
        else kv[key] = m[2];
    }
    alert(JSON.stringify(kv,null,2))
</script>

有帮助麻烦点下【采纳该答案】,谢谢~~

可能代码不是很严谨,非常抱歉!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632