Приветствую Вас, дорогие постояльцы данного форума. У меня возникла проблема с построением иерархического дерева на нативном 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/