Skip to content

Commit 6a6cba6

Browse files
committed
completed ch 10 tests and exercises
1 parent 1b99e9f commit 6a6cba6

5 files changed

Lines changed: 165 additions & 4 deletions

File tree

functions/exercise.js

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
function makeLine(size) {
2+
let line = ""
3+
for (let i = 0; i < size; i++) {
4+
line += "#";
5+
}
6+
return line;
7+
}
8+
9+
console.log(makeLine(5));
10+
11+
function makeSquare(size) {
12+
return makeRectangle(size, size);
13+
}
14+
15+
console.log(makeSquare(5));
16+
17+
function makeRectangle(width, height) {
18+
let rectangle = "";
19+
for (let i = 0; i < height; i++) {
20+
rectangle += (makeLine(width)) + '\n';
21+
}
22+
return rectangle.slice(0, -1);
23+
}
24+
25+
console.log(makeRectangle(10, 5));
26+
27+
function makeDownwardStairs(height) {
28+
let downwardStairs = "";
29+
for (let i = 0; i < height; i++) {
30+
downwardStairs += (makeLine(i+1) + "\n");
31+
}
32+
return downwardStairs.slice(0, -1);
33+
}
34+
35+
console.log(makeDownwardStairs(5));
36+
37+
function makeSpaceLine(numSpaces, numChars) {
38+
let spaceLine = "";
39+
for (let i = 0; i < numSpaces; i++) {
40+
spaceLine += " ";
41+
}
42+
for (let i = 0; i < numChars; i++) {
43+
spaceLine += "#";
44+
}
45+
for (let i = 0; i < numSpaces; i++) {
46+
spaceLine += " ";
47+
}
48+
return spaceLine;
49+
}
50+
51+
console.log(makeSpaceLine(3, 5))
52+
53+
function makeIsoscelesTriangle(height) {
54+
let triangle = "";
55+
for (let i = 0; i < height; i++) {
56+
triangle += (makeSpaceLine(height-i-1, 2*i+1) + '\n');
57+
}
58+
return triangle.slice(0, -1);
59+
}
60+
61+
console.log(makeIsoscelesTriangle(4));
62+
63+
function reverse(str) {
64+
return str.split('').reverse().join('');
65+
}
66+
67+
function makeDiamond(height) {
68+
let diamond = "";
69+
diamond += makeIsoscelesTriangle(height);
70+
diamond += "\n" + reverse(diamond);
71+
return diamond;
72+
}
73+
74+
console.log(makeDiamond(5));

functions/try-it/isPalindrome.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1+
let palindrome = "able was i saw elba";
2+
13
function reverse(str) {
24
return str.split('').reverse().join('');
35
}
46

57
function isPalindrome(str) {
68
return reverse(str) === str;
79
}
10+
11+
console.log(palindrome);
12+
console.log(isPalindrome(palindrome));

functions/try-it/printMessage.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
let message = "Hello, World!";
1+
//let message = "Hello, World!"; works
22

33
function printMessage() {
44
console.log(message);
55
}
66

7+
//let message = "Hello, World!"; works
78
printMessage();
9+
//let message = "Hello, World!"; does not work
810
message = "Goodbye";
9-
printMessage();
10-
11+
printMessage();

functions/try-it/reverse.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
1-
function reverse(str) {
1+
//function using accumulator pattern to reverse a string
2+
let testString = "Excalibur";
3+
4+
function reverseAccumulator(str) {
5+
let reversed = '';
6+
7+
for (let i = 0; i < str.length; i++) {
8+
reversed = str[i] + reversed;
9+
}
10+
11+
return reversed;
12+
}
13+
14+
//function using methods to reverse a string
15+
function reverseMethod(str) {
216
let lettersArray = str.split('');
317
let reversedLettersArray = lettersArray.reverse();
418
return reversedLettersArray.join('');
519
}
20+
21+
//function method reduced to one line with chaining
22+
function chainedMethod(str) {
23+
return str.split('').reverse().join('');
24+
}
25+
26+
console.log(chainedMethod(testString));

functions/try-it/tests.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
//example of a function that prints arrays
2+
3+
let names = ["Lena", "James", "Julio"];
4+
5+
function printArray(names) {
6+
for (let i = 0; i < names.length; i++) {
7+
console.log(names[i]);
8+
}
9+
}
10+
11+
printArray(["Lena", "James", "Julio"]);
12+
console.log("---");
13+
printArray(["orange", "apple", "pear"]);
14+
15+
//example of calling a function
16+
function sayHello() {
17+
console.log("Hello, World!");
18+
}
19+
20+
sayHello();
21+
22+
//boolean function
23+
function isEven(n) {
24+
if (n % 2 === 0) {
25+
return true;
26+
}
27+
return false;
28+
}
29+
30+
//test
31+
function plusTwo(num) {
32+
return num + 2;
33+
}
34+
35+
let a = 2;
36+
37+
for (let i=0; i < 4; i++) {
38+
a = plusTwo(a);
39+
}
40+
41+
console.log(a);
42+
43+
//test
44+
function repeater(str) {
45+
let repeated = str + str;
46+
console.log(repeated);
47+
}
48+
49+
repeater('Bob');
50+
console.log(repeater("Hal"));
51+
52+
//test
53+
54+
let num = 42;
55+
56+
function isEven (num) {
57+
return num % 2 === 0;
58+
}
59+
60+
console.log(isEven(43));

0 commit comments

Comments
 (0)