@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.
  • Вопрос задан
  • 341 просмотр
Решения вопроса 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')),
}))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы