Esta pregunta es la extensión de esta pregunta. que está aquí Subrayar el grupo js por cada mes en cada año Esto está dando el resultado esperado y el código que estoy usando está aquí.
const months = [ 'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec' ] const result = flashMessage.reduce((res:any, item:any) => { const date = new Date(item.created_at) const year = date.getFullYear(); const month = months[date.getMonth()]; const existingYear = res[year] || {} res[year] = existingYear const updated = [...(existingYear[month] || []), item] res[year][month] = updated return res }, {});Esta es la respuesta que está produciendo ahora.
{ "2022": { "jan": [ { "id": 3, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" }, { "id": 2, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" }, { "id": 1, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" } ] } }¿Qué pasa si quiero el resultado en un solo nivel?
{ "2022 jan": [ { "id": 3, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" } { "id": 2, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" }, { "id": 1, "created_by": 1, "created_at": "2022-01-31T07:00:01.880Z" } ] "2022 feb": [ { "id": 3, "created_by": 1, "created_at": "2022-02-31T07:00:01.880Z" } ] "2021 feb": [ { "id": 3, "created_by": 1, "created_at": "2021-02-31T07:00:01.880Z" } ] }¿Hay alguna manera de que pueda hacer esto?