@@ -11,27 +11,46 @@ function calculateMedian(list) {
1111 return null ;
1212 }
1313
14+ < << << << HEAD
1415 // Keep only real numeric values
1516 const numbersOnly = list . filter (
1617 ( item ) => typeof item === "number" && ! Number . isNaN ( item )
1718 ) ;
1819
1920 // Return null if the array contains no numbers
21+ = === ===
22+ // filter() returns a new array, so this does not modify the original input
23+ const numbersOnly = list . filter ( ( item ) => Number . isFinite ( item ) ) ;
24+
25+ // Return null if there are no numeric values
26+ > >>> >>> a22ed15 ( Address mentor feedback for sprint 1 data groups )
2027 if ( numbersOnly . length === 0 ) {
2128 return null ;
2229 }
2330
31+ < << << << HEAD
2432 // Create a sorted copy so the original input is not changed
2533 const sortedNumbers = [ ...numbersOnly ] . sort ( ( a , b ) => a - b ) ;
2634
2735 const middleIndex = Math . floor ( sortedNumbers . length / 2 ) ;
2836
2937 // For an even-length array, median is the average of the two middle values
38+ = === ===
39+ // Safe to sort directly because numbersOnly is already a new array
40+ const sortedNumbers = numbersOnly . sort ( ( a , b ) => a - b ) ;
41+ const middleIndex = Math . floor ( sortedNumbers . length / 2 ) ;
42+
43+ // Even number of values: return the average of the two middle values
44+ > >>> >>> a22ed15 ( Address mentor feedback for sprint 1 data groups )
3045 if ( sortedNumbers . length % 2 === 0 ) {
3146 return ( sortedNumbers [ middleIndex - 1 ] + sortedNumbers [ middleIndex ] ) / 2 ;
3247 }
3348
49+ < << << << HEAD
3450 // For an odd-length array, median is the middle value
51+ = === ===
52+ // Odd number of values: return the middle value
53+ >>> >>> > a22ed15 (Address mentor feedback for sprint 1 data groups)
3554 return sortedNumbers[middleIndex];
3655}
3756
0 commit comments