const roundToFiveMinutes = timestamp => {
const date = new Date(timestamp);
const roundedMinutes = Math.floor(date.getMinutes() / 5) * 5;
date.setMinutes(roundedMinutes);
date.setSeconds(0);
return date.toISOString();
};
data.forEach(entry => {
const roundedTimestamp = roundToFiveMinutes(entry.timestamp);
const key = `${entry.tracking_source}-${roundedTimestamp}`;
if (!groupedData.has(key)) {
groupedData.set(key, {
tracking_source: entry.tracking_source,
timestamp: roundedTimestamp,
count: 0
});
}
groupedData.get(key).count++;
});
const result = Array.from(groupedData.values());