1+ /*
2+ * function averageMedian
3+ * to find the median value of an array of numbers
4+ * the numbers in an array will be sorted in ascending order by the function sortNumbers
5+ * if the length of the array is even number, the median value will be the average of the two middle numbers
6+ * else if the length of the array is odd number, the median value will be the middle number in the array
7+ */
8+
9+ /*
10+ * Doctests
11+ *
12+ * > averageMedian([8, 9, 1, 2, 5, 10, 11])
13+ * 8
14+ * > averageMedian([15, 18, 3, 9, 13, 5])
15+ * 11
16+ * > averageMedian([1,2,3,4,6,8])
17+ * 3.5
18+ */
19+
20+ function averageMedian ( numbers ) {
21+ let median = 0 ; const numLength = numbers . length
22+ numbers = numbers . sort ( sortNumbers )
23+
24+ if ( numLength % 2 === 0 ) {
25+ median = ( numbers [ numLength / 2 - 1 ] + numbers [ numLength / 2 ] ) / 2
26+ } else {
27+ median = numbers [ ( numLength - 1 ) / 2 ]
28+ }
29+
30+ return median
31+ }
32+
33+ function sortNumbers ( num1 , num2 ) {
34+ return num1 - num2
35+ }
36+
37+ console . log ( averageMedian ( [ 8 , 9 , 1 , 2 , 5 , 10 , 11 ] ) )
38+ console . log ( averageMedian ( [ 15 , 18 , 3 , 9 , 13 , 5 ] ) )
39+ console . log ( averageMedian ( [ 1 , 2 , 3 , 4 , 6 , 8 ] ) )
0 commit comments