рекурсия в обратную сторону
друзья!
мне возвращается массив, где у каждого элемента имеется аттр. parent_id, который указывает на родителя (cid). Голова в понедельник плохо работает, прошу помощи - как мне построить бесконечное дерево собирая все в обратном порядке? понимаю что рекурсивная функция,а сделать не могу. var z = new Array(); z[0]['cid'] =1 ; z[0]['parentid) = null; z[1]['cid'] =2 ; z[1]['parentid) = 1; z[2]['cid'] =3 ; z[2]['parentid) = 2; //etc... могут быть в линию или могут быть новой мерностью |
Нужно массив конвертировать в дерево объектов вида
[{ cid : 1, childItems : [ { cid: 2, childItems : [{cid: 3}] } ] }]? Если да — то просто обходите свой массив, строя дерево следующим образом: Отдельного вести массив объектов, соответствующих "узлам". При встрече нового узла в массиве смотреть на его parent и, если он не null, то вставлять текущий элемент в потомки parent'у (получать его из массива), иначе — в корневой массив. |
Часовой пояс GMT +3, время: 06:14. |