Advertisement
Guest User

Untitled

a guest
May 21st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function parseQuery(queryString) {
  2.   var query = {};
  3.   var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
  4.   for (var i = 0; i < pairs.length; i++) {
  5.     var pair = pairs[i].split('=');
  6.     query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
  7.   }
  8.   return query;
  9. }
  10.  
  11. function put(obj, keyParts, value) {
  12.   const key = keyParts.shift();
  13.   if (keyParts.length === 0) {
  14.     obj[key] = value;
  15.   } else {
  16.     obj[key] = obj[key] || {};
  17.     put(obj[key], keyParts, value);
  18.   }
  19. }
  20.  
  21. function putAll(obj, query) {
  22.   Object.keys(query).forEach((key) => {
  23.     if (query[key]) {
  24.       put(obj, key.split('.'), query[key])
  25.     }
  26.   });
  27.   return obj;
  28. }
  29.  
  30. const input = "db.host=&db.user=root&db.pass=1234";
  31.  
  32. const query = parseQuery(input);
  33. // query = { 'db.host': '', 'db.user': 'root', 'db.pass': '1234' }
  34.  
  35. const result = putAll({}, query);
  36. // result = { db: { user: 'root', pass: '1234' } }
  37.  
  38. console.log(result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement