I have the following objects

```
Person {
   name: string
   birthday: Date
   lifeEvents: LifeEvent[]
}

LifeEvent {
   eventId: number
   message: string
   comments: string
}

```

As the data comes in chunks, I will have an array of `Person` with **one object** that has `name` and `birthday` with values but `lifeEvents` is empty *(Think of this one like a parent object.)*

All other objects won't have birthday and name populated and will have only one `LifeEvent` with either `eventId` and `message` with values or `eventId` and `comments`

Within that array, I need to get the parent object, which has name and birthday with values, then get all lifeEvents from the remaining objects, merge all items that contains same eventId into a `LifeEvent` then push it to lifeEvents of the parent.

I have tried array.reduce, array.map but can't figure out a way of combining those objects into one.

My output should be only one `Person` with all `lifeEvents` merged by `eventId`

Sample data:

```
let results = [
{ 
   name: 'Test1',
   birthday: '2022-06-14',
   lifeEvents: null
},
{ 
   name: null,
   birthday: null,
   lifeEvents: [
        {
           eventId: 1,
           message: 'First event',
           comments: null
        }
   ]
},
{ 
   name: null,
   birthday: null,
   lifeEvents: [
        {
           eventId: 2,
           message: 'Second event',
           comments: null
        }
   ]
},
{ 
   name: null
   birthday: null
   lifeEvents: [
        {
           eventId: 1,
           message: null,
           comments: 'First event comment'
        }
   ]
},
{ 
   name: null
   birthday: null
   lifeEvents: [
        {
           eventId: 2,
           message: null,
           comments: 'Second event comment'
        }
   ]
},
]

```

Appreciate any help.