Задать вопрос
@sd2056

Как сделать вывод сообщений с сортировкой по дате как в телеграмм?

Допустим есть такой массив объектов

const arr = [
{id:0, text: "text", date: "2021-05-14T16:29:46.000Z"},
    {id:1, text: "text 2", date: "2021-05-14T17:29:46.000Z"},
    {id:1, text: "text 3", date: "2021-06-14T17:29:46.000Z"},
]


Вывод такой

"15 мая"

текст
текст 1

"вчера"

текст
текст 2

"сегодня"

текст
текст 3
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Средний Комментировать
Решение пользователя chincharovpc К ответам на вопрос (3)
chincharovpc
@chincharovpc
const groupArr = {}
arr.map(message => ({...message, date: new Date(message.date)}))
    .sort((m1, m2) => m1.date - m2.date)
    .forEach(message => {
        const date = message.date.toISOString().split('T')[0]
        if (!groupArr.hasOwnProperty(date)) {
            groupArr[date] = []
        }
        groupArr[date].push(message)
    })

Object.keys(groupArr).forEach(key => console.log(groupArr[key]))
Ответ написан
Комментировать