Показать сообщение отдельно
  #7 (permalink)  
Старый 10.03.2015, 09:30
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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));
Ответить с цитированием