Javascript 如何从URL中获取多个同名但索引不同且唯一的参数?

Javascript 如何从URL中获取多个同名但索引不同且唯一的参数?,javascript,angular,Javascript,Angular,我正在开发一个angular应用程序,需要将url中的不同参数作为查询参数传递。但是我们需要根据id传递参数,比如:param[1]=23,这里1和23是动态的。我已成功传递url中的参数,如: var myArrayQry = data.map(function(el) { return 'params[' + el.id + ']=' + el.quantity; }).join('&') 我们的最终url如下所示: http://example.com?params[1]=

我正在开发一个angular应用程序,需要将url中的不同参数作为查询参数传递。但是我们需要根据id传递参数,比如:param[1]=23,这里1和23是动态的。我已成功传递url中的参数,如:

var myArrayQry = data.map(function(el) {
   return 'params[' + el.id + ']=' + el.quantity;
}).join('&')
我们的最终url如下所示:

http://example.com?params[1]=23&param[7]=26&params[4]=27
当我们想要获取查询参数时,我们使用了如下查询参数:

this.route.queryParams.subscribe(res => {
   console.log(res)
})
将查询参数作为对象返回,如何获取这些参数?因为名字是动态的。有什么建议吗


我尝试的内容:我尝试了
JSON.stringify
getAll()
方法,但没有任何效果。

我认为不需要手动将查询参数插入URL。您可以利用角度路由器的
queryParams
选项

注意:我还将
Array#map
替换为
Array#reduce
以从数组创建对象。注意不要有重叠的
id
s。如果是,后一个值将覆盖前一个值

组件1(*.ts)

从“@angular/Router”导入{Router}”;
构造函数(专用路由器:路由器){}
queryParams=数据减少((acc,curr)=>{
acc[当前id]=当前数量;
返回acc;
},Object.create(null));
this.router.navigate([“/example”],{queryParams:queryParams});
或者在模板中使用它

组件1(*.html)

点击我
把它放在组件2中

组件2(*.ts)

从“@angular/router”导入{ActivatedRouter}”;
构造函数(专用路由器:路由器){}
恩戈尼尼特(){
subscribe(params=>console.log(params));
}

我创建此url是为了从不同站点重定向到angular应用程序。我有一个单页应用程序,我根据客户输入创建了这个url,并使用这些参数重定向到angular应用程序。这就是为什么,我手动添加了查询参数。@TarnjeetSingh:如果您不知道查询参数键,因为它们是动态的,那么您打算如何使用它?是的,您是对的,我不太了解查询参数,但到目前为止,我们使用了查询参数,例如,检查参数是否存在,然后获取其值,但这是我第一次需要从动态参数中获取值。您可以在订阅中执行
Object.keys(res)
Object.values(res)
,以获取作为数组的对象的键和值。