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

Как разбить массив на подмассивы по дате?

Есть например такой массив с объектами:
[
{date: "2020-10-21T21:21:06.964000Z", name: "a", type: "a"},
{date: "2020-10-21T21:21:06.964000Z", name: "b", type: "b"},
{date: "2021-10-21T21:21:06.964000Z", name: "a", type: "a"},
{date: "2018-10-21T21:21:06.964000Z", name: "a", type: "a"},
]


Нужно отсортировать по дате, чтобы массив выглядел так:
[
 { date: "2021-10-21T21:21:06.964000Z", name_type: [{name: "a", type: "a"}, {name: "b", type: "b"}] },
 { date: "2020-10-21T21:21:06.964000Z", name_type: [{name: "a", type: "a"}] }
]

Можно пример с lodash.
  • Вопрос задан
  • 380 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values(arr.reduce((acc, { date, ...n }) => (
  (acc[date] ??= { date, name_type: [] }).name_type.push(n),
  acc
), {}))

Можно пример с lodash.

_.map(_.groupBy(arr, 'date'), (v, k) => ({
  date: k,
  name_type: _.map(v, n => _.omit(n, 'date')),
}))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 17:26
5000 руб./за проект
18 дек. 2024, в 17:23
1500 руб./за проект
18 дек. 2024, в 16:42
2000 руб./за проект