UNPKG

eris-keys

Version:

a JavaScript client library for eris-keys

32 lines (29 loc) 709 B
var _curry1 = require('./internal/_curry1'); var mean = require('./mean'); /** * Returns the median of the given list of numbers. * * @func * @memberOf R * @since v0.14.0 * @category Math * @sig [Number] -> Number * @param {Array} list * @return {Number} * @example * * R.median([2, 9, 7]); //=> 7 * R.median([7, 2, 10, 9]); //=> 8 * R.median([]); //=> NaN */ module.exports = _curry1(function median(list) { var len = list.length; if (len === 0) { return NaN; } var width = 2 - len % 2; var idx = (len - width) / 2; return mean(Array.prototype.slice.call(list, 0).sort(function(a, b) { return a < b ? -1 : a > b ? 1 : 0; }).slice(idx, idx + width)); });