source: node_modules/ramda/es/median.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 759 bytes
Line 
1import _curry1 from "./internal/_curry1.js";
2import mean from "./mean.js";
3/**
4 * Returns the median of the given list of numbers.
5 *
6 * @func
7 * @memberOf R
8 * @since v0.14.0
9 * @category Math
10 * @sig [Number] -> Number
11 * @param {Array} list
12 * @return {Number}
13 * @see R.mean
14 * @example
15 *
16 * R.median([2, 9, 7]); //=> 7
17 * R.median([7, 2, 10, 9]); //=> 8
18 * R.median([]); //=> NaN
19 */
20
21var median =
22/*#__PURE__*/
23_curry1(function median(list) {
24 var len = list.length;
25
26 if (len === 0) {
27 return NaN;
28 }
29
30 var width = 2 - len % 2;
31 var idx = (len - width) / 2;
32 return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {
33 return a < b ? -1 : a > b ? 1 : 0;
34 }).slice(idx, idx + width));
35});
36
37export default median;
Note: See TracBrowser for help on using the repository browser.