多次定义参数时获取 URL 参数值
Get URL parameter value when parameter is defined multiple times
我有以下网址:
products?feature_filters[]=&feature_filters[]=on&feature_filters[]=on
从这里我需要得到一个数组,如下所示:
var feature_filters = [1, 2]
注意:正如MightyPork所指出的,这将是从零开始的......所以我需要拒绝0,并保留1和2。
我已经成功地使用此示例在定义一次URL参数时获取它们。但是,我无法解析由我的应用程序创建的这组参数。
您可以在链接答案中扩展 ,以相同的方式循环访问参数,但不仅仅是返回第一个匹配项,而是构建一个对象,其中每个属性都是查询字符串条目的名称,并包含一个其值的数组,基本上是数组的字典。
然后,对于特定键,您可以遍历其数组并查找设置了哪些索引:
// groups all parameters together into a dictionary-type object
function getUrlParameterGroups()
{
var sPageURL = window.location.search.substring(1);
var paramGroups = {};
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var paramParts = sURLVariables[i].split('=');
var sParameterName = paramParts[0];
// first time we've seen it - add a blank array
if(!paramGroups.hasOwnProperty(sParameterName))
{
paramGroups[sParameterName] = [];
}
// ad to the array
if(paramParts.length > 1)
{
paramGroups[sParameterName].push(paramParts[1]);
}
else
{
// handle not having an equals (eg y in x=1&y&z=2)
paramGroups[sParameterName].push('');
}
}
return paramGroups;
}
// gets which indices of the specified parameter have a value set
function getSetUrlParameters(sParameterName)
{
var arr = getUrlParameterGroups()[sParameterName];
return arr.reduce(function(previousValue, currentValue, index) {
if(currentValue != '') { // or if(currentValue == 'on')
previousValue.push(index);
}
return previousValue;
}, []);
}
var result = getSetUrlParameters('feature_filters[]');
console.log(result);
工作小提琴
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 传递包含'%的参数'在URL中
- 如何在router.get()方法中传递url作为参数
- javascript中url中的Regex参数
- 如何在reactrouterv2.+中从URL获取参数
- 使用express.具有多个url和可选参数的Router()
- 如何在所有ajax调用中向URL添加参数
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 如何使用Javascript从URL参数中自动填充文本字段
- XMLHttpRequest.open()AJAX中的参数url
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 在url参数javascript中存储键值对列表
- backbone.js-映射标准url参数-使用多个参数
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- UI 路由器参数 URL 不起作用,只是重定向到 /
- 在Select2中传递参数url
- 使用jQuery/Javascript(querystring)获取查询字符串参数url值
- Javascript -重定向参数URL只有一次
- 替换url参数-url被破坏