Mirrored from GitHub

git clone https://github.com/christc4/js2.git

Jump to: README.md gradebook.js pyramid.js


README.md

1# js2

gradebook.js

1function getAverage(scores) {
2  let sum = 0;
3
4  for (const score of scores) {
5    sum += score;
6  }
7
8  return sum / scores.length;
9}
10
11function getGrade(score) {
12  if (score === 100) {
13    return "A++";
14  } else if (score >= 90) {
15    return "A";
16  } else if (score >= 80) {
17    return "B";
18  } else if (score >= 70) {
19    return "C";
20  } else if (score >= 60) {
21    return "D";
22  } else {
23    return "F";
24  }
25}
26
27function hasPassingGrade(score) {
28  return getGrade(score) !== "F";
29}
30
31
32function studentMsg(totalScores, studentScore) {
33  let courseResult = "You passed the course."
34  if(!hasPassingGrade(studentScore)) {
35    courseResult = "You failed the course."
36  }
37  return "Class average: " + getAverage(totalScores) + ". Your grade: " +   
38  getGrade(studentScore) + ". " + courseResult
39}
40
41console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

pyramid.js

1const character = "!";
2const count = 10;
3const rows = [];
4let inverted = false;
5
6function padRow(rowNumber, rowCount) {
7  return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber);
8}
9
10for (let i = 1; i <= count; i++) {
11  if (inverted) {
12    rows.unshift(padRow(i, count));
13  } else {
14    rows.push(padRow(i, count));
15  }
16}
17
18let result = ""
19
20for (const row of rows) {
21  result = result + row + "\n";
22}
23
24console.log(result);