この記事の最終更新日: 2023年2月1日
日付、時間、曜日での3つのキーでグルーピングし(まとめて)、countをの数値は合計値に変更するコードです。
reduceメソッドを使用します。
const data = [
{ date: '2023-01-01', hour: 10, week_name: 'Monday', count: 100 },
{ date: '2023-01-01', hour: 11, week_name: 'Monday', count: 200 },
{ date: '2023-01-02', hour: 10, week_name: 'Tuesday', count: 150 },
{ date: '2023-01-03', hour: 11, week_name: 'Wednesday', count: 75 }
];
const groupedData = data.reduce((acc, item) => {
const key = `${item.date}-${item.hour}-${item.week_name}`;
if (!acc[key]) {
acc[key] = { date: item.date, hour: item.hour, week_name: item.week_name, count: 0 };
}
acc[key].count += item.count;
return acc;
}, {});
console.log(Object.values(groupedData));
出力結果
[
{ date: '2023-01-01', hour: 10, week_name: 'Monday', count: 100 },
{ date: '2023-01-01', hour: 11, week_name: 'Monday', count: 200 },
{ date: '2023-01-02', hour: 10, week_name: 'Tuesday', count: 150 },
{ date: '2023-01-03', hour: 11, week_name: 'Wednesday', count: 75 }
]
大阪のエンジニアが書いているブログ。
コメント