groupedByCategory = derivedData
.sort(
(a, b) => sortByObject[a.Gewaltkategorie] - sortByObject[b.Gewaltkategorie]
)
.reduce((groups, d) => {
const group = groups.find((g) => g.name === d.Gewaltkategorie);
const currentValue = {
value: d.total,
year: d.year,
sector: d.Gewaltkategorie
};
if (group) {
group.values.push(currentValue);
group.valuesByYear[currentValue.year.getFullYear()] = currentValue.value;
} else {
groups.push({
name: d.Gewaltkategorie,
values: [currentValue],
valuesByYear: {
[currentValue.year.getFullYear()]: currentValue.value
}
});
}
return groups;
}, [])
.map((group) => ({
...group,
values: group.values
}))