xdarkV,
 Вот вам ваш исправленный вариант:
var len;
    var names;
    var res;
    var result = {};
    var keys = Object.keys(obj);
    for (var i = 0; i < keys.length; i++) {
        var arr = [];
        createObject(keys[i]);
    }
    function createObject(name) {
        res = result;
        names = name.split('.');
        len = names.length;
        names.forEach(resultObject);
    }
    function resultObject(subName, index) {
        if (!res[subName]) {
            if (index == len - 1) {
                res[subName] = obj[keys[i]];
            } else {
                res[subName] = {};
            }
        }
        res = res[subName];
    }
    alert(JSON.stringify(result, "", 4));