Ребят, подскажите, как перебрать массив объектов и рекурсивно вложить дочерние элементы? 
У меня есть двухмерный массив с элементами содержащими поля ID и ownerID. 
Пример:
[{
  "ID": "1"
},
{
  "ID": "2",
  "ownerID": "1"
},
{
  "ID": "4",
  "ownerID": "2"
},
{
  "ID": "64"
},
{
  "ID": "78",
  "ownerID": "64"
}]
Некоторые поля не имеют ownerID, это объекты самого верхнего уровня. Нужно рекурсивно перебрать массив объектов, что бы по итогу все элементы оказались вложенными в родительский. 
Пример:
[{
  "ID": "1",
  "childrens": [
    {
       "ID": "2",
       "childrens": [{
          "ID": "4",
       }]
    }
  ]
},
{
  "ID": "64",
  "childrens": [
    {
       "ID": "78"
    }
  ]
}]
P.S. скиньте, пожалуйста, пример кода, или, если есть, хорошую статью с примерами. Заранее спасибо.