Skip to content

Commit 4a5a3a3

Browse files
committed
modified: modules/exercises/ScoreCalcs/averages.js
modified: modules/exercises/display.js modified: modules/exercises/index.js modified: modules/exercises/randomSelect.js modified: modules/exporting-modules/index.js modified: modules/exporting-modules/practiceExports.js
1 parent 38936fa commit 4a5a3a3

File tree

6 files changed

+111
-84
lines changed

6 files changed

+111
-84
lines changed
Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
1-
function averageForStudent(nameIndex,scores){
2-
let sum = 0;
3-
for (let i=0; i<scores.length; i++){
4-
sum += scores[nameIndex][i];
5-
}
6-
let average = sum/scores[nameIndex].length;
7-
return average;
1+
function averageForStudent(nameIndex, scores) {
2+
let sum = 0;
3+
for (let i = 0; i < scores.length; i++) {
4+
sum += scores[nameIndex][i];
5+
}
6+
let average = sum / scores[nameIndex].length;
7+
return average;
88
}
99

10-
function averageForTest(testIndex,scores){
11-
let sum = 0;
12-
for (let i=0; i<scores.length; i++){
13-
sum += scores[i][testIndex];
14-
}
15-
let average = sum/scores[0].length;
16-
return average;
10+
function averageForTest(testIndex, scores) {
11+
let sum = 0;
12+
for (let i = 0; i < scores.length; i++) {
13+
sum += scores[i][testIndex];
14+
}
15+
let average = sum / scores[0].length;
16+
return average;
1717
}
1818

1919
//TODO: Export all functions within an object.
20+
module.exports = {
21+
averageForStudent: averageForStudent,
22+
averageForTest: averageForTest,
23+
};

modules/exercises/display.js

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,38 @@
11
//TODO: Export ONLY the printAll function.
22

3-
function printAll(names, tests, scores){
4-
let header = 'Name';
5-
let row = '';
3+
function printAll(names, tests, scores) {
4+
let header = "Name";
5+
let row = "";
66

7-
for (let i = 0; i<tests.length; i++){
8-
header += '\t'+tests[i];
9-
}
10-
console.log(header);
7+
for (let i = 0; i < tests.length; i++) {
8+
header += "\t" + tests[i];
9+
}
10+
console.log(header);
1111

12-
for (let name = 0; name<names.length; name++){
13-
row = names[name];
14-
for (let score = 0; score<scores[name].length;score++){
15-
row += '\t'+scores[name][score];
16-
}
17-
console.log(row);
18-
}
19-
return;
12+
for (let name = 0; name < names.length; name++) {
13+
row = names[name];
14+
for (let score = 0; score < scores[name].length; score++) {
15+
row += "\t" + scores[name][score];
16+
}
17+
console.log(row);
18+
}
19+
return;
2020
}
2121

22-
function printStudentScores(index,students,tests,scores){
23-
console.log(`Test results for ${students[index]}:`);
24-
for (let i = 0; i<tests.length; i++){
25-
console.log(`${tests[i]} = ${scores[index][i]}%.`);
26-
}
27-
return;
22+
function printStudentScores(index, students, tests, scores) {
23+
console.log(`Test results for ${students[index]}:`);
24+
for (let i = 0; i < tests.length; i++) {
25+
console.log(`${tests[i]} = ${scores[index][i]}%.`);
26+
}
27+
return;
2828
}
2929

30-
function printTestScores(index,test,students,scores){
31-
console.log(`Class results for ${test} test:`);
32-
for (let i = 0; i<students.length; i++){
33-
console.log(`${students[i]} = ${scores[i][index]}%.`);
34-
}
35-
return;
30+
function printTestScores(index, test, students, scores) {
31+
console.log(`Class results for ${test} test:`);
32+
for (let i = 0; i < students.length; i++) {
33+
console.log(`${students[i]} = ${scores[i][index]}%.`);
34+
}
35+
return;
3636
}
37+
38+
module.exports = printAll;

modules/exercises/index.js

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,47 @@
11
//Import modules:
2-
const input = //Import readline-sync.
3-
const averages = //Import functions from averages.js.
4-
const printAll = //Import function from display.js.
5-
const randomSelect = //Import function from randomSelect.js.
2+
const input = require("readline-sync"); //Import readline-sync.
3+
const practiceExports = require("../exporting-modules/practiceExports.js");
4+
const averages = require("./ScoreCalcs/averages.js"); //Import functions from averages.js.
5+
const printAll = require("./display.js"); //Import function from display.js.
6+
const randomSelect = require("./randomSelect.js"); //Import function from randomSelect.js.
67

78
//Candidate data:
8-
let astronauts = ['Fox','Turtle','Cat','Hippo','Dog'];
9+
let astronauts = ["Fox", "Turtle", "Cat", "Hippo", "Dog"];
910

10-
const testTitles = ['Math','Fitness','Coding','Nav','Communication'];
11+
const testTitles = ["Math", "Fitness", "Coding", "Nav", "Communication"];
1112

12-
let scores = [[95, 86, 83, 81, 76],[79, 71, 79, 87, 72],[94, 87, 87, 83, 82],[99, 77, 91, 79, 80],[96, 95, 99, 82, 70]];
13+
let scores = [
14+
[95, 86, 83, 81, 76],
15+
[79, 71, 79, 87, 72],
16+
[94, 87, 87, 83, 82],
17+
[99, 77, 91, 79, 80],
18+
[96, 95, 99, 82, 70],
19+
];
1320

1421
//User interface:
15-
let prompts = ['display all scores', 'average the scores for each test', 'average the scores for each astronaut','select the next spacewalker'];
22+
let prompts = ["display all scores", "average the scores for each test", "average the scores for each astronaut", "select the next spacewalker"];
1623

17-
for (let i = 0; i<prompts.length; i++){
18-
let response = input.question(`Would you like to ${prompts[i]}? Y/N: `);
19-
if (response.toLowerCase()==='y'){
20-
if (i===0){
21-
//Call 'printAll' here and pass in all necessary arguments.
22-
} else if (i===1){
23-
for (let j = 0; j<testTitles.length; j++){
24-
let avg = //Call 'averageForTest' here. Pass in j and scores as arguments.
25-
console.log(`${testTitles[j]} test average = ${avg}%.`);
26-
}
27-
} else if (i===2){
28-
for (let j = 0; j<astronauts.length; j++){
29-
let avg = //Call 'averageForStudent' here. Pass in j and scores as arguments.
30-
console.log(`${astronauts[j]}'s test average = ${avg}%.`);
31-
}
32-
} else {
33-
let walker = //Call 'randomSelect' to pick a spacewalker from the astronauts array.
34-
console.log(`${walker} is the next spacewalker.`);
35-
}
36-
} else {
37-
console.log("Option skipped.");
38-
}
24+
for (let i = 0; i < prompts.length; i++) {
25+
let response = input.question(`Would you like to ${prompts[i]}? Y/N: `);
26+
if (response.toLowerCase() === "y") {
27+
if (i === 0) {
28+
//Call 'printAll' here and pass in all necessary arguments.
29+
printAll(astronauts, testTitles, scores);
30+
} else if (i === 1) {
31+
for (let j = 0; j < testTitles.length; j++) {
32+
let avg = averages.averageForTest(j, scores); //Call 'averageForTest' here. Pass in j and scores as arguments.
33+
console.log(`${testTitles[j]} test average = ${avg}%.`);
34+
}
35+
} else if (i === 2) {
36+
for (let j = 0; j < astronauts.length; j++) {
37+
let avg = averages.averageForStudent(j, scores); //Call 'averageForStudent' here. Pass in j and scores as arguments.
38+
console.log(`${astronauts[j]}'s test average = ${avg}%.`);
39+
}
40+
} else {
41+
let walker = randomSelect(astronauts); //Call 'randomSelect' to pick a spacewalker from the astronauts array.
42+
console.log(`${walker} is the next spacewalker.`);
43+
}
44+
} else {
45+
console.log("Option skipped.");
46+
}
3947
}

modules/exercises/randomSelect.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
function randomFromArray(arr){
2-
//Your code here to select a random element from the array passed to the function.
1+
function randomFromArray(arr) {
2+
//Your code here to select a random element from the array passed to the function.
3+
let x = Math.floor(Math.random() * arr.length);
4+
return arr[x];
35
}
46

57
//TODO: Export the randomFromArray function.
8+
9+
module.exports = randomFromArray;

modules/exporting-modules/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
// Import the modules exported from practiceExports.js below:
2+
const evenOrOdd = require("../exporting-modules/practiceExports");
3+
const isPalindrome = require("../exporting-modules/practiceExports");
4+
const randomArrayElement = require("../exporting-modules/practiceExports");
Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
1-
function isPalindrome(str){
2-
return str === str.split('').reverse().join('');
1+
function isPalindrome(str) {
2+
return str === str.split("").reverse().join("");
33
}
44

5-
function evenOrOdd(num){
6-
if (num%2===0){
7-
return "Even";
8-
} else {
9-
return "Odd";
10-
}
5+
function evenOrOdd(num) {
6+
if (num % 2 === 0) {
7+
return "Even";
8+
} else {
9+
return "Odd";
10+
}
1111
}
1212

13-
function randomArrayElement(arr){
14-
let index = Math.floor(Math.random()*arr.length);
15-
return arr[index];
13+
function randomArrayElement(arr) {
14+
let index = Math.floor(Math.random() * arr.length);
15+
return arr[index];
1616
}
17+
18+
module.exports = {
19+
evenOrOdd: evenOrOdd,
20+
isPalindrome: isPalindrome,
21+
randomArrayElement: randomArrayElement,
22+
};

0 commit comments

Comments
 (0)