Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2015, 10:57
Новичок на форуме
Отправить личное сообщение для mu_vi Посмотреть профиль Найти все сообщения от mu_vi
 
Регистрация: 22.01.2015
Сообщений: 2

Динамическое создание дерева объекта
Добрый день. Появилась очень хитрая задача. Нужно сформировать динамически дерево объекта. Кто сталкивался с проблемкой? Дайте совет куда смотреть?

По поводу переборов через вложенные циклы не вариант, так как дерево может быть любой длины.

Проблема у меня с тем, что не знаю как обратиться задать путь ключу. К примеру:

1) При первой итерации цикла object.key = value
2) При второй итерации цикла нужно object.х.key и т.д.
Третья object.х.х.key, четвертая object.х.х.x.key

Буду рад за дельный совет. Большое Вам спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2015, 11:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А из чего сформировать? Что на входе?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2015, 11:04
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

mu_vi,
Посмотрите в сторону рекурсии. С ней общение с древовидными объектами схожего типа упрощается в десятки раз.
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2015, 11:11
Новичок на форуме
Отправить личное сообщение для mu_vi Посмотреть профиль Найти все сообщения от mu_vi
 
Регистрация: 22.01.2015
Сообщений: 2

На входе текст с параметрами, типа: ключ.ключ.ключ="значение".

В сторону рекурсии смотрел. Но проблема с обращением, к ключу. Если у него есть родители, то нужно создать цепочку запросов тип object.родитель.родитель.роди ель.key.
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2015, 11:53
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

var str = "key1.key2.petya=trololo";

  var parse = function (str) {
    var result = {};
    var elem = result;
    var keys = str.split(".");
    for (var i = 0; i < keys.length; i++) {
       if (i < keys.length - 1) {
          elem[keys[i]] = {};
          elem =  elem[keys[i]];
       } else {
          var tmp = keys[i].split("=");
          elem[tmp[0]] = tmp[1];
       }
    }
    return result;
  }

alert(JSON.stringify(parse(str), "", 4));


Это конечно говнокод, но идея та?
Приведите пожалуйста небольшой, но реальный пример данных которые надо распарсить в дерево (с максимальным количеством "use-case")

Последний раз редактировалось tsigel, 22.01.2015 в 11:57.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DOM создание объекта JQ ~ вопрос реализации состояния Brook Events/DOM/Window 0 21.01.2014 22:45
динамическое обновление свойств объекта в цикле grego Общие вопросы Javascript 3 04.12.2013 23:29
Динамическое создание объектов Telnet jQuery 6 28.06.2011 15:56
Странное создание объекта IceBird Общие вопросы Javascript 3 12.06.2010 05:39
Создание копий объекта - обязателен ли prototype? heh131 Общие вопросы Javascript 12 15.05.2010 12:55