Як побудувати дерево коментарів з масиву?
Додумався лише до того щоб записувати вкладені коментарі в Dictionary в якому ключі — це ID коментарів, а значення це List відповідей на коментар.
Як на мене це і буде оптимальне рішення для даної задачі.
Спочатку обходимо список коментарів і розділяємо їх на 2 групи:
- Список кореневих коментарів (наприклад:
rootComments
) у яких немаєto_comment_id
і з яких почнеться дерево - Словник з відповідями (наприклад:
childComments
) на коментарі де ключto_comment_id
, а значення - це список коментарів зі вказанимto_comment_id
А далі рекурсивно рендеримо дерево коментарів починаючи з кореневих коментарів:
// Псевдокод
// Обхід кореневих коментарів
<ul>
@for(comment in rootComments)
// рендеринг віджету з коментарем
@endfor
</ul>
Html віджет коментаря:
<li>тут наш комнетар</li>
@if(childComments.has(comment.id))
<ul>
@for(comment in childComments[comment.id])
// рекурсивний рендеринг віджету з коментарем
@endfor
</ul>
@endif
Alex
· 1 рік тому
Щоб залишити коментар необхідно авторизуватися.
Коментарі (2)