Группировать массив объектов на основе свойств и условий - PullRequest
0 голосов
/ 16 июня 2020

У меня есть массив объектов. Этот массив представляет собой последовательность заданий, и мне нужно сгруппировать эти задания по максимальному количеству часов, которые эта группа имеет, максимум 8 часов, и на основе окна даты выполнения.

Пример:

Задания:

[
  {
    id: 1,
    description: 'Importação de arquivos de fundos',
    maxConclusionDate: 2019-11-10T12:00:00.000Z,
    estimateTime: 2
  },
  {
    id: 2,
    description: 'Importação de dados da Base Legada',
    maxConclusionDate: 2019-11-11T12:00:00.000Z,
    estimateTime: 4
  },
  {
    id: 3,
    description: 'Importação de dados de integração',
    maxConclusionDate: 2019-11-11T08:00:00.000Z,
    estimateTime: 6
  },
]

Окно выполнения:

[
  "2019-11-10 09:00:00",
  "2019-11-11 12:00:00"
];

В этом примере мне нужно сгруппировать задания, выполнение которых занимает не более 8 часов и не проходит максимальная дата выполнения

Результат должен быть таким, сгруппированным по ID:

[[1,3],[2]]

Моя проблема состоит в том, чтобы найти способ сгруппировать и удалить уже сгруппированные индексы, чтобы не группировать их снова. Пока это то, что я получил :

...