11import leastArguments from '../_utils/leastArguments' ;
2+ import sum from '../sum' ;
23
34/**
45 * @name mean
@@ -15,69 +16,13 @@ import leastArguments from '../_utils/leastArguments';
1516 * let result = mean(...[10,20,30]);
1617 * // => 30
1718 *
18- * @param {number } a first number.
19- * @param {number } b second number.
20- * @param {number } c third number.
21- * @param {number } d fourth number.
22- * @param {number } e fifth number.
23- * @param {number } f sixth number.
24- * @param {number } g seventh number.
25- * @param {number } h eighth number.
26- * @param {number } i ninth number.
27- * @param {number } j tenth number.
28- * @param {Array<number> } args rest of the arguments.
19+ * @param {Array<number> } args numbers to be averaged..
2920 * @returns {number } the resulting mean.
3021 *
3122 * @function pure
3223 */
3324
34- export default function mean (
35- a : number ,
36- b : number = 0 ,
37- c : number = 0 ,
38- d : number = 0 ,
39- e : number = 0 ,
40- f : number = 0 ,
41- g : number = 0 ,
42- h : number = 0 ,
43- i : number = 0 ,
44- j : number = 0 ,
45- ...args : number [ ]
46- ) : number {
47- const argLength = arguments . length ;
48- leastArguments ( 2 , argLength ) ;
49-
50- switch ( argLength ) {
51- case 2 :
52- return ( a + b ) / 2 ;
53- case 3 :
54- return ( a + b + c ) / 3 ;
55- case 4 :
56- return ( a + b + c + d ) / 4 ;
57- case 5 :
58- return ( a + b + c + d + e ) / 5 ;
59- case 6 :
60- return ( a + b + c + d + e + f ) / 6 ;
61- case 7 :
62- return ( a + b + c + d + e + f + g ) / 7 ;
63- case 8 :
64- return ( a + b + c + d + e + f + g + h ) / 8 ;
65- case 9 :
66- return ( a + b + c + d + e + f + g + h + i ) / 9 ;
67- case 10 :
68- return ( a + b + c + d + e + f + g + h + i + j ) / 10 ;
69- default : {
70- const num = args . slice ( 0 ) ;
71-
72- let length = num . length ;
73-
74- let result = a + b + c + d + e + f + g + h + i + j ;
75-
76- while ( length ) {
77- result += num [ -- length ] ;
78- }
79-
80- return result / argLength ;
81- }
82- }
25+ export default function mean ( ...args : number [ ] ) : number {
26+ leastArguments ( 2 , arguments ) ;
27+ return sum ( ...args ) / arguments . length ;
8328}
0 commit comments