В настоящее время у меня есть следующий интерфейс:
export interface IFoo {
id: any;
notes?: string;
timestamp: any;
}
API, с которым я сейчас работаю, возвращает массив этого интерфейса, например:
[{
"id": 47,
"notes": "asdas",
"timestamp": "03/15/2020 08:47:42"
}, {
"id": 48,
"notes": "asdasd",
"timestamp": "03/15/2020 15:16:12"
}]
Насколько это возможно для преобразования выше в структуру ниже? Зная, что я использую Observable для загрузки данных, поэтому мне потребуется использовать rx js:
this.foo$ = this.fooService.load
.pipe(...
По существу, после использования map
или любых других возможных операторов ответ должен быть разделен, как показано ниже : (Год, месяц, день)
[
{
year: YYYY,
count: 0, // <- total `foos` in year
months: [
{
month: 'January',
count: 0, // <- total `foos` in month
days: [
{
day: 0,
count: 0, // <- total `foos` in day
foos: [
{
Id: 0,
Notes: '...',
Timestamp: '...'
}
]
}
]
}
]
}
]
Причина этого заключается в том, что я пытаюсь отобразить данные на внешнем интерфейсе таким образом, чтобы основной группой был год, второй месяц, день и каждый элемент под соответствующим днем.
Я выполнил группировку на серверной части, однако я более убежден, что это необходимо сделать на интерфейсной стороне для целей фильтрации и манипулирования данными, не возвращаясь к сервер.
Заранее спасибо.