Skip to content

Commit 59d57be

Browse files
committed
calculateMedian fix
1 parent ce620b7 commit 59d57be

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

Sprint-1/fix/median.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,21 @@
66
// or 'list' has mixed values (the function is expected to sort only numbers).
77

88
function calculateMedian(list) {
9-
const middleIndex = Math.floor(list.length / 2);
10-
const median = list.splice(middleIndex, 1)[0];
11-
return median;
9+
if (!Array.isArray(list)) return null;// checks if a list is an array
10+
const numbers = list.filter( x => typeof x === "number"); //keeps only numbers
11+
if (numbers.length === 0) return null;
12+
const sorted = numbers.slice().sort((a, b) => a - b);
13+
14+
const middleIndex = Math.floor(sorted.length / 2);
15+
16+
let median;
17+
if (sorted.length % 2 === 0) {
18+
median = (sorted[middleIndex - 1] + sorted[middleIndex]) / 2;
19+
}
20+
else {
21+
median = sorted[middleIndex];
22+
}
23+
return median
1224
}
1325

1426
module.exports = calculateMedian;

0 commit comments

Comments
 (0)