Создание многомерного списка из одномерного - PullRequest
0 голосов
/ 06 ноября 2011

Я пытаюсь построить многомерный массив из простого массива объектов.

Каждый объект содержит три свойства, которые можно использовать для создания этого массива: идентификатор объекта, идентификатор родителя и порядок отображения для той же глубины.

исходный массив имеет следующую форму:

object -> id:1, parent:0, index:2
object -> id:3, parent:0, index:1
object -> id:4, parent:2, index:1
object -> id:2, parent:1, index:1
object -> id:5, parent:0, index:3
...

и окончательный массив должен быть в этой форме:

object -> id:3,         parent:0, index:1
object -> id:1,         parent:0, index:2
object ->     id:2,     parent:1, index:1
object ->         id:4, parent:2, index:1
object -> id:5          parent:0, index:3
...

Конечно, нет предела глубины, и у родителя может быть много детей.

Я не могу создать цикл, который строит этот многомерный массив. Я должен найти родителя, который может быть в любой ветви, на любой глубине, если он уже находится в массиве, иначе я должен добавить его, прежде чем присоединить текущий объект (дочерний объект). Мне действительно тяжело ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...