// Created on savesnippets.com ยท https://savesnippets.com/BzYJZzKK4YarHl 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