Skip to content

Commit 40ac40d

Browse files
committed
mean median mode completed
1 parent 82adf23 commit 40ac40d

File tree

3 files changed

+121
-26
lines changed

3 files changed

+121
-26
lines changed

.idea/workspace.xml

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

isPalindrome.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ isPalindrome("Madam I'm Adam", (isPalindrome) => {
2424
if (isPalindrome == true) console.log('True');
2525
else console.log('False');
2626
});
27+

meanMedianMode.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
let getMean = (myArray) => {
2+
let sum = 0;
3+
myArray.forEach(number => sum += number);
4+
return sum/myArray.length;
5+
};
6+
7+
let getMedian = (myArray) => {
8+
myArray.sort((a, b) => a - b);
9+
10+
let arrayLength = myArray.length;
11+
12+
if (arrayLength % 2 != 0) {
13+
return myArray[parseInt(arrayLength / 2)];
14+
} else {
15+
return (myArray[arrayLength/2] + myArray[(arrayLength/2) - 1]) / 2;
16+
}
17+
};
18+
19+
let getMode = (myArray) => {
20+
let myMap = {};
21+
let mode = [], frequency = -1;
22+
myArray.forEach((number) => {
23+
if (!myMap[number]) {
24+
myMap[number] = 0;
25+
}
26+
myMap[number]++;
27+
});
28+
29+
for (let num in myMap) {
30+
if (myMap[num] >= frequency) {
31+
if (myMap[num] == frequency) {
32+
mode.push(num);
33+
} else {
34+
frequency = myMap[num];
35+
mode = [];
36+
mode.push(num);
37+
}
38+
}
39+
}
40+
return mode;
41+
};
42+
43+
let getMeanMedianMode = (myArray, cb) => {
44+
let myObject = {
45+
mean: getMean(myArray),
46+
median: getMedian(myArray),
47+
mode: getMode(myArray)
48+
};
49+
50+
return cb(null, myObject);
51+
};
52+
53+
54+
getMeanMedianMode([1, 2, 3, 4, 5, 4, 6, 1], (err, myObject) => {
55+
if (err) {
56+
57+
} else {
58+
console.log(myObject);
59+
}
60+
});
61+
62+

0 commit comments

Comments
 (0)