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

1	function 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	
11	function 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	
27	function hasPassingGrade(score) {
28	  return getGrade(score) !== "F";
29	}
30	
31	
32	function 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	
41	console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

pyramid.js

1	const character = "!";
2	const count = 10;
3	const rows = [];
4	let inverted = false;
5	
6	function padRow(rowNumber, rowCount) {
7	  return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber);
8	}
9	
10	for (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	
18	let result = ""
19	
20	for (const row of rows) {
21	  result = result + row + "\n";
22	}
23	
24	console.log(result);