Skip to content

Commit def439f

Browse files
committed
Bonus - Iteration ironhack-labs#3.2: A generic sum() function
1 parent 4cb03c7 commit def439f

File tree

1 file changed

+65
-4
lines changed

1 file changed

+65
-4
lines changed

src/functions-and-arrays.js

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,85 @@
11
// Iteration #1: Find the maximum
2-
function maxOfTwoNumbers() {}
2+
function maxOfTwoNumbers(number1, number2) {
3+
if (number1 >= number2) {
4+
return number1;
5+
} else {
6+
return number2;
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(words) {
16+
if (!words.length) {
17+
return null
18+
} else if (words.length === 1) {
19+
return words[0];
20+
} else {
21+
let longestWord = '';
22+
for (let word of words) {
23+
if (word.length > longestWord.length) {
24+
longestWord = word
25+
}
26+
}
27+
return longestWord;
28+
}
29+
}
1030

1131

1232

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

16-
function sumNumbers() {}
36+
function sumNumbers(numbers) {
37+
if (!numbers.length) {
38+
return 0;
39+
}
40+
let sum = 0;
41+
for (let number of numbers) {
42+
sum += number;
43+
}
44+
if (sum === 0) {
45+
return 0;
46+
} else {
47+
return sum;
48+
}
49+
}
1750

1851

1952

2053
// Iteration #3.1 Bonus:
21-
function sum() {}
54+
function sum(items) {
55+
if (!items.length) {
56+
return 0;
57+
}
58+
let sum = 0;
59+
for (let item of items) {
60+
switch (typeof item) {
61+
case 'string':
62+
sum += item.length;
63+
break;
64+
case 'number':
65+
sum += item;
66+
break;
67+
case 'boolean':
68+
if (item === true) {
69+
sum++
70+
}
71+
break;
72+
case 'object':
73+
throw new Error("Unsupported data type sir or ma'am");
74+
}
75+
}
76+
77+
if (sum === 0) {
78+
return 0;
79+
} else {
80+
return sum;
81+
}
82+
}
2283

2384

2485

0 commit comments

Comments
 (0)