Math.median = function()

in static/plugins/math.js [3:12]


Math.median = function (numbers) {
    const numbers_sorted = Array.from(numbers).sort((a, b) => a - b);
    const middle_pos = Math.floor(numbers_sorted.length / 2);
    // Even number of elements, return the average of the two in the middle
    if (numbers_sorted.length % 2 === 0) {
        return (numbers_sorted[middle_pos - 1] + numbers_sorted[middle_pos]) / 2;
    }
    // Odd number of elements, return the middle one
    return numbers_sorted[middle_pos];
}