我想构建一个从当前URL解析URL查询字符串(参数和值)的函数(例如document.location),并将每个键值对(parameter = value)存储为数组中的单个元素。
例如,如果URL是: http://example.com?product=shoes&price=59.99&color=red
然后它返回: parameters = [“product = shoes”,“price = 59.99”,“color = red”];
有什么建议吗?
谢谢,
答案 0 :(得分:1)
根据您的浏览器要求,您可以使用 public requestList(): Observable<Record[]> {
if (this.currentList !== undefined) {
// MAGIC HERE: returning content that's already in this.currentList HOW?
}
return this.http.get(this.requestUrl)
.map((response: any) => this.currentList = response.json())
.catch(this.setError);
}
对象:
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
URLSearchParams
或者,如果您需要手动执行此操作,则可以拆分var params = new URLSearchParams(location.search);
字符串:
location.search
答案 1 :(得分:0)
您可以使用String的.slice()
和.split()
方法:
let str = 'http://example.com?product=shoes&price=59.99&color=red';
let parser = url => url.slice(url.indexOf('?') + 1).split('&');
console.log(parser(str));
&#13;
您还可以使用.reduce()
:
let str = 'http://example.com?product=shoes&price=59.99&color=red';
let parser = url => url.slice(url.indexOf('?') + 1)
.split('&')
.reduce((a, c) => {
let [key, value] = c.split('=');
a[key] = value;
return a;
}, {});
console.log(parser(str));
&#13;
<强>文档:强>