Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   рекурсия в обратную сторону (https://javascript.ru/forum/misc/23573-rekursiya-v-obratnuyu-storonu.html)

bugmenot 28.11.2011 16:40

рекурсия в обратную сторону
 
друзья!
мне возвращается массив, где у каждого элемента имеется аттр. 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... могут быть в линию или могут быть новой мерностью

B@rmaley.e><e 29.11.2011 23:45

Нужно массив конвертировать в дерево объектов вида
[{
  cid : 1,
  childItems : [
    {
      cid: 2,
      childItems : [{cid: 3}]
    }
  ]
}]
?

Если да — то просто обходите свой массив, строя дерево следующим образом:
Отдельного вести массив объектов, соответствующих "узлам".
При встрече нового узла в массиве смотреть на его parent и, если он не null, то вставлять текущий элемент в потомки parent'у (получать его из массива), иначе — в корневой массив.


Часовой пояс GMT +3, время: 23:34.