Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
303 changes: 165 additions & 138 deletions README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions SpecRunner.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
<script src="jasmine/jasmine-2.8.0/boot.js"></script>

<!-- include source files here... -->
<script src="src/functions-and-arrays.js"></script>
<script src="src/challenges.js"></script>

<!-- include spec files here... -->
<script src="tests/functions-and-arrays.spec.js"></script>
<script src="tests/challenges.spec.js"></script>
</head>

<body></body>
Expand Down
2 changes: 1 addition & 1 deletion jasmine/jasmine-2.8.0/jasmine-html.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ jasmineRequire.HtmlReporter = function(j$) {
var alert = find('.jasmine-alert');
var order = doneResult && doneResult.order;
labName.appendChild(createDom('img', {src: 'jasmine/jasmine-2.8.0/ironhack-logo.png'}, ''));
labName.appendChild(createDom('span', {}, 'LAB | JS Functions & Arrays'));
labName.appendChild(createDom('span', {}, 'LAB | JS Challenges - Arrays & Functions'));
alert.appendChild(createDom('span', {className: 'jasmine-duration'}, 'finished in ' + timer.elapsed() / 1000 + 's'));

banner.appendChild(
Expand Down
172 changes: 172 additions & 0 deletions src/challenges.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
// Iteration 1 | Count Repetition
const repeatedWords = [
"machine",
"matter",
"subset",
"trouble",
"starting",
"matter",
"eating",
"matter",
"truth",
"disobedience",
"matter",
];

function howManyTimes(repeatedWords, search) {
let count = 0;
if (repeatedWords.length === 0) {
return 0;
}
for (const element of repeatedWords) {
if (element === search) {
count++;
}
}
return count;
}

// Iteration 2 | Number Sequence
function createSequence(num) {
let newArr = [];
if (num === 0) {
return newArr;
}

if (num > 0) {
for (let i = 0; i <= num; i++) {
newArr.push(i);
}
}
return newArr;
}

// Iteration 3 | Multiply for Each
const numbers = [1, 2, 5, 10, 13, 50];

function multiplyBy(array, num) {
multipliedArr = [];
array.forEach((element) => {
multipliedArr.push(element * num);
});
return multipliedArr;
}

// Iteration 4 | Filter Out
const original = ["cat", "dog", "fish", "bird", "cat", "fish"];
const toRemove = ["cat", "dog"];

function filterOut(originalArr, stringsToRemove) {
if (originalArr.length === 0) {
return null;
} else {
const filteredArr = originalArr.filter(
(word) => !stringsToRemove.includes(word)
);
return filteredArr;
// console.log(filteredArr);
}
}

// Iteration 5 | Unique Arrays
const duplicateWords = [
"crab",
"poison",
"contagious",
"simple",
"bring",
"sharp",
"playground",
"poison",
"communion",
"simple",
"bring",
];

function uniquifyArray(duplicateWords) {
let finalArray = [];
if (duplicateWords.length === 0) {
return null;
}
duplicateWords.forEach((element) => {
// if element is already contained in final array take it out, if not push
if (!finalArray.includes(element)) {
finalArray.push(element);
} else if (finalArray.includes(element)) {
finalArray.splice(finalArray.indexOf(element), 1);
}
});
return finalArray;
}

//a little confused about this iteration and what's actually expected from it -
//I created one that follows the logic of the example and expected outcome provided in README file -
//the jasmine test expects a slightly different result which I was also able to achieve by omitting my second condition

// Bonus: Iteration 6 | Product of Adjacent Numbers
const matrix = [
[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],
[
49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62,
0,
],
[
81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36,
65,
],
[52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],
[
22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13,
80,
],
[
24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12,
50,
],
[
32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64,
70,
],
[
67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94,
21,
],
[
24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63,
72,
],
[21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],
[78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],
[
16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85,
57,
],
[86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],
[
19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55,
40,
],
[4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],
[
88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53,
69,
],
[
4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76,
36,
],
[
20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36,
16,
],
[
20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5,
54,
],
[
1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67,
48,
],
];

function greatestProduct() {}
130 changes: 0 additions & 130 deletions src/functions-and-arrays.js

This file was deleted.

Loading