I am trying to convert values to query string.
var obj = {
param1: 'test',
param2: true,
}
var str = "";
for (var key in obj) {
if (str != "") {
str += "&";
}
str += key + "=" + obj[key];
}
console.log(str);
Expected query string would be like this: test=true.
It would be much easier if you would use objects as intended but:
const obj = {
param1: 'test',
param2: 'true',
param3: 'test2',
param4: 'NO',
}
const entries = Object.values(obj)
const trueObj = {}
for (let i = 0; i < entries.length; i += 2) {
trueObj[entries[i]] = entries[i + 1]
}
const params = new URLSearchParams(trueObj)
const queryString = params.toString()
console.log(queryString)
You can use back ticks to insert the quote. You will however, have to write a bit of extra logic in you obj variable to determine which parameters should be passed as a string or just the value.
const string = `"NO"`;
console.log(string)
var obj = {
param1: 'test',
param2: 'true',
param3: 'test2',
param4: 'NO',
}
var str = "";
var i = 0;
for (var key in obj) {
if(i%2 ===0) {
if(i!== 0)
str += "&" + obj[key] + "=";
else str += obj[key] + "=";
}
else str += obj[key] ;
i++;
}
console.log(str);
That should work as intended.
Results:
test=true&test2=NO