1) преобразуете массив в объект с помощью _.indexBy из lodash/underscore при этом так как внутри массива объекты, то полученый объект будет содержать ссылки на те же объекты
2) пробегаем исходный массив и отмечаем в childs у родителя
UPD: писал с телефона в дороге, дополню кодом
Простой вариант, как описано мною выше:
P.S. если нужно именно новый массив, не затрагивая исходный, то перед выполнением кода нужно сделать deapClone и работать уже с клоном, реализацию deapClone можете легко нагуглить
Спасибо за ваш ответ, интересный подход, но это не решает задачу. Кстати, _.indexBy из lodash/underscore переименован в keyBy (версия 4.0.0) https://github.com/lodash/lodash/wiki/Changelog
Владимир Допустим: может тогда я не понял задачу, распишите поподробнее
Насчет lodash давно уже не использую, ибо таскать ее из-за пары функций реализуемых за 5-10 минут, просто глупо