Skip to content

Commit c49c63c

Browse files
committed
median function updated according to requests
1 parent 96d077b commit c49c63c

2 files changed

Lines changed: 76 additions & 169 deletions

File tree

Sprint-1/fix/median.js

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,34 @@
55
// Hint: Please consider scenarios when 'list' doesn't have numbers (the function is expected to return null)
66
// or 'list' has mixed values (the function is expected to sort only numbers).
77

8+
// function calculateMedian(list) {
9+
// const middleIndex = Math.floor(list.length / 2);
10+
// const median = list.splice(middleIndex, 1)[0];
11+
// return median;
12+
// }
13+
14+
// module.exports = calculateMedian;
15+
816
function calculateMedian(list) {
9-
const middleIndex = Math.floor(list.length / 2);
10-
const median = list.splice(middleIndex, 1)[0];
11-
return median;
17+
if (!Array.isArray(list)) {
18+
return null;
19+
}
20+
21+
const numbers = list.filter((item) => typeof item === "number");
22+
23+
if (numbers.length === 0) {
24+
return null;
25+
}
26+
27+
numbers.sort((a, b) => a - b);
28+
29+
const middle = Math.floor(numbers.length / 2);
30+
31+
if (numbers.length % 2 === 0) {
32+
return (numbers[middle - 1] + numbers[middle]) / 2;
33+
}
34+
35+
return numbers[middle];
1236
}
1337

1438
module.exports = calculateMedian;

Sprint-1/package-lock.json

Lines changed: 49 additions & 166 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)