Skip to content

Commit 7f4f301

Browse files
committed
Add Bonus - Iteration ironhack-labs#3.1 + fails 1 test (should throw an error when unsupported data type (object or array) ...
1 parent fd5b833 commit 7f4f301

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

src/functions-and-arrays.js

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ function findLongestWord(words) {
3333

3434
// Iteration #3: Calculate the sum
3535
const numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10];
36-
function sumNumbers(numbers) {
37-
let sumNumbers=0;
36+
function sumNumbers(numbers) {
37+
let sumNumbers = 0;
3838
for (let i = 0; i < numbers.length; i++) {
39-
sumNumbers += numbers[i];
39+
sumNumbers += numbers[i];
4040
}
4141
return sumNumbers;
4242
}
@@ -45,8 +45,29 @@ function sumNumbers(numbers) {
4545

4646

4747
// Iteration #3.1 Bonus:
48-
49-
function sum() { }
48+
const mixedArr = [6, 12, 'miami', 1, true, 'barca', '200', 'lisboa', 8, 10];
49+
//const mixedArr = [6, 12, 'miami', 1, 'barca', '200', 'lisboa', 8, [], {}];
50+
function sum(mixedArr) {
51+
let sumNumbers = 0;
52+
for (let i = 0; i < mixedArr.length; i++) {
53+
let mixedEl = typeof mixedArr[i];
54+
if ( mixedEl === "number") {
55+
sumNumbers += mixedArr[i];
56+
} else if ( mixedEl === "string"){
57+
sumNumbers += mixedArr[i].length;
58+
} else if ( mixedEl === "boolean"){
59+
if ((mixedArr[i]) === false) { // false is counted as 0
60+
sumNumbers += 0;
61+
} else { // true is counted as 1
62+
sumNumbers += 1;
63+
}
64+
} else if ( ((mixedEl) === "object") || ((mixedEl) === "array" )) {
65+
return "Unsupported data type sir or ma'am";
66+
}
67+
}
68+
return sumNumbers;
69+
}
70+
//console.log(sum(mixedArr)); // 57 yuju!
5071

5172

5273

0 commit comments

Comments
 (0)