export const sum = (xs: readonly number[]): number => xs.reduce((a, b) => a + b, 0);
export const mean = (xs: readonly number[]): number => xs.length ? sum(xs) / xs.length : 0;
export function median(xs: readonly number[]): number {
if (xs.length === 0) return 0;
const s = [...xs].sort((a, b) => a - b);
const m = Math.floor(s.length / 2);
return s.length % 2 ? s[m]! : (s[m - 1]! + s[m]!) / 2;
}
sum([1, 2, 3, 4]); // 10
mean([1, 2, 3, 4]); // 2.5
median([1, 3, 8, 4, 2]); // 3
Create a free account and build your private vault. Share publicly whenever you want.