在Array中将备用值组合在一起

时间:2015-12-08 17:42:10

标签: javascript

这是我的网址:https://www.google.com/?Field1=A&Value1=A1&Field2=B&Value2=B1

我使用下面的脚本来获取查询字符串:

var arr=[];
arr = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

给出了以下输出

["Field1=A", "Value1=A1", "Field2=B", "Value2=B1"]

但我希望将结果作为键值对,如下所示:

A: A1
B: B1

我该怎么做?

3 个答案:

答案 0 :(得分:2)

假设字段和值的顺序相同,字段和值将始终存在于对中。

尝试以下

var obj = {};

for (var i = 0; i < arr.length; i=i+2) {

    obj[arr[i].split("=")[1]] = arr[i+1].split("=")[1];

}

console.log(obj);

答案 1 :(得分:1)

尝试此功能:

function getUrlParams(url) {
    var ret = {};

    url
    .slice(url.indexOf('?') + 1)
    .split('&')
    .forEach(function(str){
        str = str.split('=');
        ret[str[0]] = str[1];
    });
    return ret;
}

按如下方式使用:

var urlParams = getUrlParams(window.location.href);

拥有网址:https://www.google.com/?Field1=A&Value1=A1&Field2=B&Value2=B1

urlParams应该等于:

{
    "Field1" : "A",
    "Value1" : "A1",
    "Field2" : "B",
    "Value2" : "B1"
}

答案 2 :(得分:0)

尝试将String.prototype.match()RegExp /\w+(?=&|$)/g匹配,以匹配后跟"&"或输入字符串结尾的字词,while循环,{{1 }}

Array.prototype.shift()