Inserting A String At A Variable Index
I have not been able to find a working example or a good explanation of how I can achieve the following: (I would appreciate if anyone can point me in the right direction. I have a
Solution 1:
It looks like you are just having trouble parsing and updating a query string. In which case, I have a function I've been using for that (thank you Google)
functiongetUriParams(string) {
var params = {},
queryString = string.slice(string.lastIndexOf('?')).substring(1),
regex = /([^&=]+)=([^&]*)/g,
m;
while (m = regex.exec(queryString)) {
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return params;
}
The input is your requestString
and the output is an object of key value pairs of the query string.
To make the object a string, jQuery makes it easy with $.param()
.
//get key value pairsvar obj = getUriParams(requestString);
//make query stringvar str = $.param(obj);
Solution 2:
I suggest to change the logic a bit. I would use some data storage for the wanted parameter and rebuild the request string every time when it's necessary, like the below example.
It is much more better, than rebuild the string each time when some value has changed.
var data = {
sources: [1, 2],
plans: [],
codes: [1, 3, 4]
};
functionbuildStr() {
functionget(key) { return key + '=' + JSON.stringify(data[key]); }
return'/api/bla?' + ['sources', 'plans', 'codes'].map(get).join('&');
}
document.write('<pre>' + buildStr() + '</pre>');
Post a Comment for "Inserting A String At A Variable Index"