Javascript 从具有相同参数的查询字符串中检索多个键/值

Javascript 从具有相同参数的查询字符串中检索多个键/值,javascript,Javascript,我试图从一个查询字符串中提取多个参数,其中参数具有相同的名称,在我的例子中是filter。我似乎只能使用以下方法访问过滤器的第一个实例,而且我还需要将键/值从冒号分隔符中拆分为一种更容易使用的格式,我不确定如何最好地使用这种格式。如果有人能给我指出正确的方向,我将不胜感激 myURL = example.com?someparam=test&filter=color:"GOLD"&filter=size:"10"; var getUrl

我试图从一个查询字符串中提取多个参数,其中参数具有相同的名称,在我的例子中是
filter
。我似乎只能使用以下方法访问过滤器的第一个实例,而且我还需要将键/值从冒号分隔符中拆分为一种更容易使用的格式,我不确定如何最好地使用这种格式。如果有人能给我指出正确的方向,我将不胜感激

myURL =  example.com?someparam=test&filter=color:"GOLD"&filter=size:"10";

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = urlParams,
    sURLVariables = sPageURL.split('&'),
    sParameterName,
    i;

for (i = 0; i < sURLVariables.length; i++) {
   sParameterName = sURLVariables[i].split('=');

   if (sParameterName[0] === sParam) {
       return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
   }
   }
  };

var filters = getUrlParameter('filter');

console.log(filter);
// Outputs...
color:"GOLD"
myURL=example.com?someparam=test&filter=color:“GOLD”和filter=size:“10”;
var getUrlParameter=函数getUrlParameter(sParam){
var sPageURL=urlParams,
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i
无需重新发明车轮

已经有一个很好的图书馆:

const query=require('query-string'))
const url='someparam=test&filter=color:“GOLD”&filter=size:“10”;
const result=query.parse(url);
log(JSON.stringify(result));
输出

{"filter":["color:\"GOLD\"","size:\"10\""],"someparam":"test"}
输出:

{
  color: "'GOLD'",
  size: "'10'"
}

你看过吗?这能回答你的问题吗?
{
  color: "'GOLD'",
  size: "'10'"
}
    myURL =  `example.com?someparam=test&filter=color:"GOLD"&filter=size:"10"`;

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = myURL,
    sURLVariables = sPageURL.split('&'),
    sParameterName,
    i;

    return sURLVariables.filter(function(filters){
        return filters.includes(sParam);     
    }).map(function(filters){
        sParameterName = filters.split('=');
        if (sParameterName[0] !== undefined && sParameterName[0] === sParam && sParameterName[1] !== undefined) {
            return  decodeURIComponent(sParameterName[1]);
        }        
    })
}



var filters = getUrlParameter('filter');

console.log(filters);