Я пытаюсь построить многомерный массив из простого массива объектов.
Каждый объект содержит три свойства, которые можно использовать для создания этого массива: идентификатор объекта, идентификатор родителя и порядок отображения для той же глубины.
исходный массив имеет следующую форму:
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
...
Конечно, нет предела глубины, и у родителя может быть много детей.
Я не могу создать цикл, который строит этот многомерный массив. Я должен найти родителя, который может быть в любой ветви, на любой глубине, если он уже находится в массиве, иначе я должен добавить его, прежде чем присоединить текущий объект (дочерний объект).
Мне действительно тяжело ...