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

Правильность реализации групировки по датам из базы?

Добрый день, сделал функционал для того что бы заказы групировали по датам, но как по мне получилось достаточно сложно. Может есть идеи как можно сделать более легко?
1) Получаю данные
let { Orders = [] } = data

2) Создаю функцию которая будет по ключу сортировать массивы в один новый масив
const groupBy = (array:any, key:any) => {
    return array.reduce((rv:any, x:any) => {
      (rv[x[key]] = rv[x[key]] || []).push(x);
      return rv
    }, {})
  }


3) Из базы данных я получаю в формате Date и для правильной группировки прохожусь по массиву переписывая его и создаю новые поля date и dateForm
let MassiveArray = []

 Orders = Orders.map((order:any) => ({
      ...order, 
      date: new Date(order.created_at).getDate() + monthNames[new Date(order.created_at).getMonth()], // Получаю в формате 7 апреля
      dateForm: new Date(order.created_at).getDate() + '.' + new Date(order.created_at).getMonth()  // Получаю в формате 7.3 ( так как апрель 4 месяц по счету но счет идет с 0 и поэтому 3 )
    }))
    MassiveArray = groupBy(Orders, 'dateForm')


4) И массив monthName что бы по индексу получить названия месяца.

И вроде бы все хорошо работает но как мне кажется это костыль, и есть более удобные методы реализовать. Буду рад если опытне специалисты подскажут как можно сделать чуть легче))
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы