Может ли кто-нибудь помочь преобразовать следующий список объектов parent-child:
[ { "name":"root", "_id":"root_id", }, { "name":"a1", "parentAreaRef":{ "id":"root_id", }, "_id":"a1_id", }, { "name":"a2", "parentAreaRef":{ "id":"a1_id", }, "_id":"a2_id", }, { "name":"a3", "parentAreaRef":{ "id":"a2_id", }, "_id":"a3_id", }, { "name":"b1", "parentAreaRef":{ "id":"root_id", }, "_id":"b1_id", }, { "name":"b2", "parentAreaRef":{ "id":"b1_id", }, "_id":"b2_id", }, { "name":"b3", "parentAreaRef":{ "id":"b1_id", }, "_id":"b3_id", } ]
в древовидную структуру, показывающую отношения родитель-потомок:
[ { "name": "root", "_id":"root_id", "children": [ { "name": "a1", "_id":"a1_id", "children" : [ { "name" : "a2", "_id":"a2_id", "children" : [ { "name" : "a3" "_id":"a3_id" } ] } ] }, { "name": "b1", "_id":"b1_id", "children" : [ { "name" : "b2" "_id":"b2_id" }, { "name" : "b3" "_id":"b3_id" } ] } ] } ]
(Структура вывода - это массив, позволяющий использовать несколько корней, но если мы сможем получить решение, которое отлично справится с одним корнем).
Дерево вывода выглядит следующим образом:
root | -- a1 | | | -- a2 | | | -- a3 | -- b1 | -- b2 -- b3
Спасибо!