Skip to content

Commit 989244a

Browse files
Merge pull request LaunchCodeEducation#13 from LaunchCodeEducation/exporting-modules
Exporting modules
2 parents 6883a1a + 76f678f commit 989244a

File tree

7 files changed

+130
-0
lines changed

7 files changed

+130
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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;
8+
}
9+
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;
17+
}
18+
19+
//TODO: Export all functions within an object.

modules/exercises/display.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//TODO: Export ONLY the printAll function.
2+
3+
function printAll(names, tests, scores){
4+
let header = 'Name';
5+
let row = '';
6+
7+
for (let i = 0; i<tests.length; i++){
8+
header += '\t'+tests[i];
9+
}
10+
console.log(header);
11+
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;
20+
}
21+
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;
28+
}
29+
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;
36+
}

modules/exercises/index.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
//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.
6+
7+
//Candidate data:
8+
let astronauts = ['Fox','Turtle','Cat','Hippo','Dog'];
9+
10+
const testTitles = ['Math','Fitness','Coding','Nav','Communication'];
11+
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+
14+
//User interface:
15+
let prompts = ['display all scores', 'average the scores for each test', 'average the scores for each astronaut','select the next spacewalker'];
16+
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+
}
39+
}

modules/exercises/package.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "Dependencies for Chapter 13 Exercises: Modules",
3+
"version": "1.0.0",
4+
"description": "This package.json file includes all dependencies needed to run code within files contained in this directory",
5+
"main": "index.js",
6+
"dependencies": {
7+
"readline-sync": "^1.4.10"
8+
},
9+
"scripts": {
10+
"start": "node index.js"
11+
},
12+
"author": "John Woolbright",
13+
"license": "ISC"
14+
}

modules/exercises/randomSelect.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function randomFromArray(arr){
2+
//Your code here to select a random element from the array passed to the function.
3+
}
4+
5+
//TODO: Export the randomFromArray function.

modules/exporting-modules/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// Import the modules exported from practiceExports.js below:
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function isPalindrome(str){
2+
return str === str.split('').reverse().join('');
3+
}
4+
5+
function evenOrOdd(num){
6+
if (num%2===0){
7+
return "Even";
8+
} else {
9+
return "Odd";
10+
}
11+
}
12+
13+
function randomArrayElement(arr){
14+
let index = Math.floor(Math.random()*arr.length);
15+
return arr[index];
16+
}

0 commit comments

Comments
 (0)