function nestQueryString(queryString) {
const params = {};
const paramArray = queryString.startsWith('?') ? queryString.slice(1).split('&') : queryString.split('&');
for (const param of paramArray) {
const [key, value] = param.split('=');
if (key) {
const keyParts = key.split('.'); // Split by '.' to create nested structure
let currentLevel = params;
for (let i = 0; i < keyParts.length - 1; i++) {
const part = keyParts[i];
if (!currentLevel[part]) {
currentLevel[part] = {}; // Create nested object if it doesn't exist
}
currentLevel = currentLevel[part];
}
currentLevel[keyParts[keyParts.length - 1]] = value ? value : true; // Assign value to the final level
}
}
return params;
}
// Example usage:
// const queryString = "param1=value1¶m2.param3=value3¶m2.param4=value4¶m5=value5";
// const nestedParams = nestQueryString(queryString);
// console.log(nestedParams);
Add your comment