Для установки значения вы можете разделить путь и уменьшить путь, пройдя заданный объект.Если объект не существует, создайте новое свойство с именем.Позже присвойте значение.
function setValue(object, path, value) {
var keys = path.split('.'),
last = keys.pop();
keys.reduce((o, k) => o[k] = o[k] || {}, object)[last] = value;
}
var test = {};
setValue(test, "first.deep.property", 1);
setValue(test, "and.another.deep.property", 20);
console.log(test);