UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

24 lines (20 loc) 630 B
import assert from "../debug/assert.js" /** * Compute the median of the values. The values are sorted and the middle value is returned. * In case of an even number of values, the average of the two middle values is returned * * @param {number[]} values * @returns {number} */ export default (values) => { DEV: assert( Array.isArray(values), "[litecanvas/utils] median() 1st param must be an array" ) const sorted = values.sort((a, b) => a - b) const middle = Math.floor(sorted.length / 2) if (sorted.length % 2 === 0) { return (sorted[middle - 1] + sorted[middle]) / 2 } return sorted[middle] }