Javascript 将备选值组合在一个数组中
这是我的网址: 我使用以下脚本获取查询字符串:Javascript 将备选值组合在一个数组中,javascript,Javascript,这是我的网址: 我使用以下脚本获取查询字符串: 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 我该怎么做呢?假设字段和值的顺序相同,字段和值总是成对存在 试
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
我该怎么做呢?假设字段和值的顺序相同,字段和值总是成对存在 试着跟随
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);
var obj={};
对于(变量i=0;i
尝试使用String.prototype.match()
和RegExp
/\w+(?=&&|$)/g匹配后跟“&”
或输入字符串结尾的单词字符,而循环,数组.prototype.shift()
var-arr=”https://www.google.com/?Field1=A&Value1=A1&Field2=B&Value2=B1"
.match(/\w+(?=&|$)/g)
,res={};
while(arr.length){
res[arr.shift()]=arr.shift()
}
console.log(res)
尝试以下功能:
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);
具有URL:
urlparms
应等于:
{
"Field1" : "A",
"Value1" : "A1",
"Field2" : "B",
"Value2" : "B1"
}
URL参数的顺序是否总是正确的,或者是否需要解析以获取索引?window.location.search
@ZorroLearner”希望将结果作为键值对,如下所示:“作为数组中的字符串项;还是对象键、值对?@ZorroLearner-很乐意帮助您