Skip to content

Commit 1bfd4bf

Browse files
committed
add median.js
1 parent 4222cda commit 1bfd4bf

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

‎Sprint-1/fix/median.js‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,24 @@
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];
9+
if (!Array.isArray(list)){
10+
return null;
11+
}
12+
const numbersOnly = list.filter(item => typeof item === "number");
13+
if (numbersOnly.length === 0){
14+
return null;
15+
}
16+
numbersOnly.sort((a,b)=>a-b)
17+
18+
const middleIndex = Math.floor(numbersOnly.length / 2);
19+
if (numbersOnly.length % 2 === 0){
20+
return (numbersOnly[middleIndex-1] + numbersOnly[middleIndex])/2;
21+
} else {
22+
return numbersOnly[middleIndex];
23+
}
24+
const median = numbersOnly.splice(middleIndex, 1)[0];
1125
return median;
26+
1227
}
1328

1429
module.exports = calculateMedian;

‎Sprint-1/package-lock.json‎

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

0 commit comments

Comments
 (0)