Я получил задание отображать комментарии рекурсивным образом, примерно так:

Данные, которые я получил с сервера, были плоскими, что означает:
каждый элемент в массиве содержит ссылку на своего родителя, например:

const entries = [
  {
    index: 1,
    parent: 0
  },
  {
    index: 2,
    parent: 1
  },
  {
    index: 3,
    parent: 2
  },
   ...
   ...
   ];

Подумав, как «атаковать» эту проблему, я понял
Если мне нужен рекурсивный объект, то самое простое решение — рекурсивное

Вот функция, которая преобразует плоский массив в массив дерева:

const arrayToTree = (arr, parent = 0) =>
  arr.filter(item => item.parent === parent)
     .map(child => ({ ...child, children: arrayToTree(arr, 
     child.index) }));

Краткий обзор:

  • Сначала мы фильтруем дочерние элементы root parent.
  • Затем мы делаем то же самое с каждым из детей, которых мы только что схватили.

Мой ответ на вопрос о переполнении стека

Источники, которые мне помогли: