Сортировка списка комментариев Wordpress для получения древовидного списка на ES6
Последние записи
Wordpress прекрасная CMS, но мне пришлось помучиться, чтобы отсортировать комментарии в древовидном порядке. Спасибо Kobe со stackoverflow за прекрасную функцию сортировки на ES6
Имеем массив на входе

Преобразовываем его с помощью функции:
var comments = this.props.data.COMMENTS;
comments = comments.sort((a, b) => b.comment_parent - a.comment_parent);
const sortComments = (comments) => {
var temp = [...comments];
comments.forEach((o, index) => {
if (temp[0].comment_parent === 0) {return;}
var parentIndex = temp.findIndex(o => o.comment_ID === temp[0].comment_parent);
if(typeof temp[parentIndex]!="undefined"){
temp[parentIndex].children ? temp[parentIndex].children.push(temp[0]) : temp[parentIndex].children = [temp[0]];
temp.shift();
}
});
return temp;
}
И получаем на выходе:

Для рекурсивного вывода комментариев можно воспользоваться примером 0xD34F с qna.habr.com
Перепост материала:
Комментарии