Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function parseQuery(queryString) {
- var query = {};
- var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
- for (var i = 0; i < pairs.length; i++) {
- var pair = pairs[i].split('=');
- query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
- }
- return query;
- }
- function cleanupQuery(query) {
- const cleanQuery = {};
- Object.keys(query).forEach((key) => {
- if (query[key]) {
- cleanQuery[key] = query[key];
- }
- });
- return cleanQuery;
- }
- function put(obj, keyParts, value) {
- const key = keyParts.shift();
- if (keyParts.length === 0) {
- obj[key] = value;
- } else {
- obj[key] = obj[key] || {};
- put(obj[key], keyParts, value);
- }
- }
- function putAll(obj, query) {
- Object.keys(query).forEach((key) =>
- put(obj, key.split('.'), query[key])
- );
- return obj;
- }
- const input = "db.host=&db.user=root&db.pass=1234";
- const query = parseQuery(input);
- // query = { 'db.host': '', 'db.user': 'root', 'db.pass': '1234' }
- const cleanQuery = cleanupQuery(query);
- // cleanQuery = { 'db.user': 'root', 'db.pass': '1234' }
- const result = putAll({}, cleanQuery);
- // result = { db: { user: 'root', pass: '1234' } }
- console.log(result);
Add Comment
Please, Sign In to add comment