UNPKG

540 BJavaScriptView Raw
1/**
2 * Utility helpers for generating statistics.
3 *
4 * @module statistics
5 */
6
7import * as math from './math.js'
8
9/**
10 * @param {Array<number>} arr Array of values
11 * @return {number} Returns null if the array is empty
12 */
13export const median = arr => arr.length === 0 ? NaN : (arr.length % 2 === 1 ? arr[(arr.length - 1) / 2] : (arr[math.floor((arr.length - 1) / 2)] + arr[math.ceil((arr.length - 1) / 2)]) / 2)
14
15/**
16 * @param {Array<number>} arr
17 * @return {number}
18 */
19export const average = arr => arr.reduce(math.add, 0) / arr.length