I stumbled upon the following code:
obj = {};  // global object
function set(path, value) {
    var schema = obj;  // a moving reference to internal objects within obj
    var pList = path.split('.');
    var len = pList.length;
    for(var i = 0; i < len-1; i++) {
        var elem = pList[i];
        if( !schema[elem] ) schema[elem] = {}
        schema = schema[elem];
    }
    schema[pList[len-1]] = value;
}
set('mongo.db.user', 'root');
I read a bit further on it and found that schema is acting as a pointer of obj. How does this work? I even re-wrote the above code to incorporate ES6:
console.log(set('mongo.db.user', 'root'));
function set(path, data = '', obj = {}, delim = '.') {
  if (path) {;
    path.split(delim).reduce((s, n, i, a) => {
      s.pointer[n] = s.pointer[n] || i === a.length - 1 ? data : {};
      s.pointer = s.pointer[n];
      return s;
    }, {pointer: obj});
  }
  return obj;
}However I feel limited in my ability to expand upon this because I do not see how, for example, if pointer is obj, how does setting s.pointer[n] set object, but s.pointer = s.pointer[n] not set/overwrite obj?
If someone could please explain this that would be great - also if I am missing something from the bigger picture (and thus didn't ask) please let me know.
