var _curry1 = /*#__PURE__*/require('./internal/_curry1'); var mean = /*#__PURE__*/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} * @see R.mean * @example * * R.median([2, 9, 7]); //=> 7 * R.median([7, 2, 10, 9]); //=> 8 * R.median([]); //=> NaN */ var median = /*#__PURE__*/_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)); }); module.exports = median;