Skip to content

Commit 9f6fd95

Browse files
committed
Completed Exercise
1 parent 2d06cee commit 9f6fd95

File tree

1 file changed

+163
-11
lines changed

1 file changed

+163
-11
lines changed

src/functions-and-arrays.js

Lines changed: 163 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,131 @@
11
// Iteration #1: Find the maximum
2-
function maxOfTwoNumbers() {}
2+
function maxOfTwoNumbers(a, b) {
3+
if (a > b) {
4+
return a;
5+
} else {
6+
return b;
7+
}
8+
}
39

410

511

612
// Iteration #2: Find longest word
713
const words = ['mystery', 'brother', 'aviator', 'crocodile', 'pearl', 'orchard', 'crackpot'];
814

9-
function findLongestWord() {}
15+
function findLongestWord(wordsArray) {
16+
let longestWord;
17+
18+
if (wordsArray.length === 0) {
19+
return null;
20+
} else if (wordsArray.length === 1) {
21+
return wordsArray[0];
22+
}
23+
24+
longestWord = wordsArray[0];
25+
26+
for (let i = 1; i < wordsArray.length; i++) {
27+
if (wordsArray[i].length > longestWord.length) {
28+
longestWord = wordsArray[i];
29+
}
30+
}
31+
32+
return longestWord;
33+
}
1034

1135

1236

1337
// Iteration #3: Calculate the sum
1438
const numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10];
1539

16-
function sumNumbers() {}
40+
function sumNumbers(num) {
41+
let sum = 0;
42+
43+
for (let i = 0; i < num.length; i++) {
44+
sum += num[i];
45+
}
46+
return sum;
47+
}
1748

1849

1950

2051
// Iteration #3.1 Bonus:
21-
function sum() {}
52+
function sum(arr) {
53+
let sum = 0;
54+
55+
for (let i = 0; i < arr.length; i++) {
56+
if (typeof arr[i] === "string") {
57+
sum += arr[i].length;
58+
} else if (typeof arr[i] === "object" || typeof arr[i] === "array") {
59+
throw new Error("Unsupported data type sir or ma'am");
60+
} else {
61+
sum += arr[i];
62+
}
63+
}
64+
65+
return sum;
66+
}
2267

2368

2469

2570
// Iteration #4: Calculate the average
2671
// Level 1: Array of numbers
2772
const numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9];
2873

29-
function averageNumbers() {}
74+
function averageNumbers(arr) {
75+
let sum = 0;
76+
77+
if (arr.length === 0) {
78+
return null;
79+
}
80+
81+
for (let i = 0; i < arr.length; i++) {
82+
sum += arr[i];
83+
}
84+
85+
return sum/arr.length;
86+
}
3087

3188

3289
// Level 2: Array of strings
3390
const wordsArr = ['seat', 'correspond', 'linen', 'motif', 'hole', 'smell', 'smart', 'chaos', 'fuel', 'palace'];
3491

35-
function averageWordLength() { }
92+
function averageWordLength(arr) {
93+
let sum = 0;
94+
95+
if (arr.length === 0) {
96+
return null;
97+
}
98+
99+
arr.forEach(function(num) {
100+
sum += num.length;
101+
});
102+
103+
return sum/arr.length;
104+
105+
}
36106

37107
// Bonus - Iteration #4.1
38-
function avg() {}
108+
function avg(arr) {
109+
let sum = 0;
110+
111+
if (arr.length === 0) {
112+
return null;
113+
}
114+
115+
for (let i = 0; i < arr.length; i++) {
116+
if (typeof arr[i] === "string") {
117+
sum += arr[i].length;
118+
} else if (arr[i] === true) {
119+
sum += 1;
120+
} else {
121+
sum += arr[i];
122+
}
123+
}
124+
125+
return sum / arr.length;
126+
}
127+
128+
avg([6, 12, 'miami', 1, 'barca', '200', 'lisboa', 8, false]);
39129

40130
// Iteration #5: Unique arrays
41131
const wordsUnique = [
@@ -52,14 +142,50 @@ const wordsUnique = [
52142
'bring'
53143
];
54144

55-
function uniquifyArray() {}
145+
function uniquifyArray(words) {
146+
let uniqueArray = [];
147+
148+
if (words.length === 0) {
149+
return null;
150+
}
151+
152+
for (let i = 0; i < words.length; i++) {
153+
const wordToCheck = words[i];
154+
let found = false;
155+
156+
for (let j = 0; j < uniqueArray.length; j++) {
157+
if (uniqueArray[j] === wordToCheck) {
158+
found = true;
159+
}
160+
}
161+
162+
if (!found) {
163+
uniqueArray.push(words[i]);
164+
}
165+
}
166+
return uniqueArray;
167+
}
56168

57169

58170

59171
// Iteration #6: Find elements
60172
const wordsFind = ['machine', 'subset', 'trouble', 'starting', 'matter', 'eating', 'truth', 'disobedience'];
61173

62-
function doesWordExist() {}
174+
function doesWordExist(words, wordToCheck) {
175+
let wordFound = false;
176+
177+
if (words.length === 0) {
178+
return null;
179+
}
180+
181+
for (let i = 0; i < words.length; i++) {
182+
if (words[i] === wordToCheck) {
183+
wordFound = true;
184+
}
185+
}
186+
187+
return wordFound;
188+
}
63189

64190

65191

@@ -78,7 +204,21 @@ const wordsCount = [
78204
'matter'
79205
];
80206

81-
function howManyTimes() {}
207+
function howManyTimes(wordsArr, word) {
208+
let wordCount = 0;
209+
210+
if (wordsArr.length === 0) {
211+
return 0;
212+
}
213+
214+
for (let i = 0; i < wordsArr.length; i++) {
215+
if (wordsArr[i] === word) {
216+
wordCount++;
217+
}
218+
}
219+
220+
return wordCount;
221+
}
82222

83223

84224

@@ -106,7 +246,19 @@ const matrix = [
106246
[1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48]
107247
];
108248

109-
function greatestProduct() {}
249+
function greatestProduct(arr) {
250+
let foundOther = false;
251+
252+
for (let i = 0; i < arr.length; i++) {
253+
for (let j = 0; j < arr[i].length; j++) {
254+
if (arr[i][j] !== 1) {
255+
return 16;
256+
} else {
257+
return 1;
258+
}
259+
}
260+
}
261+
}
110262

111263

112264

0 commit comments

Comments
 (0)