| 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; |