How to Generate URL Query Strings in JavaScript
Writing out the URL query string can become cumbersome at times. It gets long and tedious to maintain and fix.
const URI = "https://example.org/path?key1=val1&key2=val2&key3=val3";
What if there was a way to generate these query strings from a dictionary mapping of these keys and values?
We can define a generic function to make this translation from map to query string.
const generateQueryString = (params) => {
return Object.keys(params)
.map((v, i) => (i !== 0 ? "&" : "?") + `${v}=${o[v]}`)
.join("");
};
And then use it like so.
const queryString = generateQueryString({
key1: "val1",
key2: "val2",
key3: "val3"
});
const URI = "https://example.org/path" + queryString;
We can also use the URLSearchParams API
to perform the same thing. Fortunately, it’s available on all modern browsers.
const queryString = new URLSearchParams({
key1: "val1",
key2: "val2",
key3: "val3"
});
// Don't forget the ?
const URI = "https://example.org/path" + "?" + queryString;
We can also append to this queryString
if needed using append()
.
queryString.append("key4", "val4");