Files
brk/app/src/scripts/utils/math/averages.ts
2024-06-23 17:38:53 +02:00

23 lines
508 B
TypeScript

import { computeSum } from "./sum";
export const computeAverage = (values: number[]) =>
computeSum(values) / values.length;
export const computeMovingAverage = <
T extends SingleValueData = SingleValueData,
>(
dataset: T[],
interval: number,
) => {
if (!dataset.length) return [];
return dataset.map((data, index) => ({
...data,
value: computeAverage(
dataset
.slice(Math.max(index - interval + 1, 0), index + 1)
.map((data) => data.value || 1),
),
}));
};