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
202 changes: 202 additions & 0 deletions src/challenges.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
// Iteration 1 | Count Repetition
const repeatedWords = [
"machine",
"matter",
"subset",
"trouble",
"starting",
"matter",
"eating",
"matter",
"truth",
"disobedience",
"matter",
];

function howManyTimes(arr, word) {
let count = 0;
for (let element of arr) {
if (word === element) {
count++;
}
}
return count;
}

// Iteration 2 | Number Sequence
function createSequence(num) {
if (num != 0) {
let arr = [];
for (let i = 0; i <= num; i++) {
arr.push(i);
}
return arr;
}
return [];
}
// Iteration 3 | Multiply for Each
const numbers = [1, 2, 5, 10, 13, 50];

function multiplyBy(arr, num) {
let result = [];
if (arr != 0) {
arr.forEach((element) => {
result.push(element * num);
});
}
return result;
}

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

function filterOut(arr, arrRemove) {
let newArr = [];
if (arr != 0) {
for (let element of arr) {
if (arrRemove.includes(element)) {
continue;
} else {
newArr.push(element);
}
}
return newArr;
}
return null;
}

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

function uniquifyArray(arr) {
let newArr = [];
if (arr != 0) {
for (let word of arr) {
if (newArr.includes(word)) {
continue;
} else {
newArr.push(word);
}
}
return newArr;
}
return null;
}

// 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(matrix) {
// declare maximum variable
let productRow = 0;
let productColumn = 0;
let tempMaxRow = 0;
let tempMaxColumn = 0;

// regarder row by row
for (let i = 0; i < matrix.length; i++) {
// déclarer variable pour un row
let row = matrix[i];
for (let j = 0; j < row.length; j++) {
// aller cellule par cellule sur la ligne
let cell = row[j];
// calculer les produits ligne par ligne
productRow = row[j] * row[j + 1] * row[j + 2] * row[j + 3];
// chercher le produit ligne maximum
if (productRow > tempMaxRow) {
tempMaxRow = productRow;
}
if (!matrix[i + 3]) {
break;
}
// chercher produit colonne maximum

productColumn =
matrix[i][j] * matrix[i + 1][j] * matrix[i + 2][j] * matrix[i + 3][j];
if (productColumn > tempMaxColumn) {
tempMaxColumn = productColumn;
}
}
}
// comparer au "produit" précédent, si sup, remplace
if (tempMaxRow > tempMaxColumn) {
return tempMaxRow;
}
return tempMaxColumn;
}
130 changes: 0 additions & 130 deletions src/functions-and-arrays.js

This file was deleted.

Loading