priceByYearByState = {
const groups = priceByDateByState.reduce((acc, curr) => {
const year = curr.date.slice(0, 4);
const key = `${year}_${curr.stateName}`;
if (!acc[key]) {
acc[key] = {
stateName: curr.stateName,
year: year,
prices: []
};
}
acc[key].prices.push(curr.price);
return acc;
}, {});
const result = Object.values(groups).map((group) => {
const { stateName, year, prices } = group;
const sum = prices.reduce((sum, price) => sum + price, 0);
const avgPrice = Number((sum / prices.length).toFixed(2));
return { stateName, year, avgPrice };
});
return result;
}