Показать сообщение отдельно
  #1 (permalink)  
Старый 17.01.2016, 05:44
Новичок на форуме
Отправить личное сообщение для gERYH Посмотреть профиль Найти все сообщения от gERYH
 
Регистрация: 17.01.2016
Сообщений: 2

Построение иерархического дерева из объекта
Приветствую Вас, дорогие постояльцы данного форума. У меня возникла проблема с построением иерархического дерева на нативном JS. Вроде функция не должна быть сложной: запуск и пробежка по объекту с помощью рекурсии, но всё же в тупик эта функция меня завела. Итак, меньше болтавни, больше кода)

Вот исходный объект
var beginObj = {
  0: {
    parent: 1
  },
  1: {
    parent: 4
  },
  2: {
    parent: 3
  },
  3: {
    parent: 4
  },
  4: {
    parent: ""
  },
  5: {
    parent: ""
  },
  6: {
    parent: ""
  },
  7: {
    parent: 8
  },
  8: {
    parent: ""
  },
  9: {
    parent: 10
  },
  10: {
    parent: ""
  }
};


А вот уже конечный объект который должен получится после пробежки по циклу
var endObj = { 
  4: { 
    1: { 
    	0: "" 
    }, 
    3: { 
    	2: "" 
    } 
  }, 
  5: "", 
  6: "", 
  8: { 
  	7: "" 
  }, 
  10: { 
  	9: "" 
  } 
};


Ну и мои наработки (если конечно в них есть смысл...)
for(var key in beginObj){
	if(endObj[beginObj[key].parent]) endObj[beginObj[key].parent] = endObj[beginObj[key].parent];
  else endObj[beginObj[key].parent] = {};
  
  if(beginObj[key].parent) endObj[beginObj[key].parent][key] = "";
  else {
  	if(!endObj[key]) endObj[key] = "";
    else endObj[key] = endObj[key];
  } 
}


P.S. Я понимаю, что такому быдлокодеру, как я не место в этом бренном мире, но буду очень благодарен за помощь)
Вот аналогия реализованная на php - http://phpdes.com/php/postroenie-der...php-rekursiya/

Последний раз редактировалось gERYH, 17.01.2016 в 11:43.
Ответить с цитированием