I have an array of objects like this:
const dataset =
[ { date: '2018-01', color: 'red', value1: null, value2: null, value3: 2, value4: 6 }
, { date: '2018-01', color: 'red', value1: 0, value2: 4, value3: null, value4: null }
, { date: '2018-02', color: 'red', value1: null, value2: null, value3: 2, value4: 10 }
, { date: '2018-02', color: 'red', value1: -9, value2: 0, value3: null, value4: null }
, { date: '2019-01', color: 'blue', value1: null, value2: null, value3: 10, value4: 3 }
, { date: '2019-01', color: 'blue', value1: -2, value2: 8, value3: null, value4: null }
, { date: '2019-02', color: 'blue', value1: null, value2: null, value3: 20, value4: 2 }
, { date: '2019-02', color: 'blue', value1: 9, value2: 7, value3: null, value4: null }
, ...
]
and I want:
const result =
[ { date: '2018-01', color: 'red', value1: 0, value2: 4, value3: 2, value4: 6 }
, { date: '2018-02', color: 'red', value1: -9, value2: 0, value3: 2, value4: 10 }
, { date: '2019-01', color: 'blue', value1: -2, value2: 8, value3: 10, value4: 3 }
, { date: '2019-02', color: 'blue', value1: 9, value2: 7, value3: 20, value4: 2 }
, ...
]
result
contains the same information of dataset
.
records with same date
and color
are merged togheter and null values are replaced by available data.
How can I do something like this? I have no idea