Я пытаюсь создать QueryString с =, разделяющим каждый ключ и значение (например, ключ = значение), и & разделяющим каждую пару ключ-значение. Проблема, с которой я сталкиваюсь, состоит в том, когда значение является массивом, и мне нужно напечатать пару ключ-значение с тем же ключом с каждым значением. Образцы внизу с тем, каким должен быть ответ после //.
function toQueryString(obj) {
var outer = Object.keys(obj).length;
var printout = ""
entries = [...Object.entries(obj)];
// console.log(outer)
// console.log(entries)
for (var i=0; i<outer; i++) {
let items = entries[i].length;
// console.log(i, items);
for (var n=0; n<items; n++) {
const long = entries[i][n].length;
if (Array.isArray(entries[i][n])) {
for(var q=0; q<long; q++) {
// console.log(entries[i][n][q]);
printout = printout + entries[i][n][q] + "&";
}
}
else if(i != entries[i][n].length) {
printout = printout + entries[i][n] + "=";
}
}
}
console.log(printout.substring(0, printout.length - 1))
}
//toQueryString({}) // ""
//toQueryString({"bar": [ 2, 3], "foo": 1 }) // "bar=2&bar=3&foo=1"
toQueryString({name: "Elie", "nums": [1,2,3,4]}) // "name=Elie&nums=1&nums=2&nums=3&nums=4"