Skip to content
Open
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
189 changes: 152 additions & 37 deletions src/challenges.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,58 @@ const repeatedWords = [
"matter",
"truth",
"disobedience",
"matter"
"matter",
];

function howManyTimes() {}



function howManyTimes(array, word) {
let wordCount = 0;
for (let i = 0; i < array.length; i++) {
if (array[i] === word) {
wordCount += 1;
}
}
return wordCount;
}

// Iteration 2 | Number Sequence
function createSequence() {}



function createSequence(n) {
let sequenceArray = [];
if (n === 0) {
return sequenceArray;
} else {
for (let i = n; i > -1; i--) {
sequenceArray.unshift(i);
}
return sequenceArray;
}
}

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

function multiplyBy() {}



function multiplyBy(numbs, multiplyer) {
let multiNumbs = [];
numbs.forEach((element) => multiNumbs.push(element * multiplyer));
return multiNumbs;
}

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

function filterOut() {}



function filterOut(original, toRemove) {
let filteredArr = [];
if (original.length === 0) {
return null;
} else {
original.forEach((element) => {
if (!toRemove.includes(element)) {
filteredArr.push(element);
}
});
return filteredArr;
}
}

// Iteration 5 | Unique Arrays
const duplicateWords = [
Expand All @@ -53,36 +75,129 @@ const duplicateWords = [
"poison",
"communion",
"simple",
"bring"
"bring",
];

function uniquifyArray() {}



function uniquifyArray(array) {
let singleWords = [];
if (array.length === 0) {
return null;
} else {
for (let i = 0; i < array.length; i++) {
if (!singleWords.includes(array[i])) {
singleWords.push(array[i]);
}
}
}

return singleWords;
}

// 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],
[
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],
[
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],
[
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],
[
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]
[
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() {}
function greatestProduct(matrix) {
let oneChecker = true;
let twoChecker = true;
for (let i = 0; i < matrix.length; i++) {
let row = matrix[i];
for (let j = 0; j < row.length; j++) {
if (matrix[i][j] !== 1) {
oneChecker = false;
} else if (matrix[i][j] !== 2) {
twoChecker = false;
}
}
}

let champion = 0;
for (let i = 0; i < matrix.length; i++) {
let row = matrix[i];
for (let j = 0; j < row.length - 3; j++) {
let challenger = row[j] * row[j + 1] * row[j + 2] * row[j + 3];
if (challenger > champion) {
champion = challenger;
}
}
}

for (let i = 0; i < matrix.length - 3; i++) {
let row = matrix[i];
for (let j = 0; j < row.length - 3; j++) {
let challenger =
matrix[i][j] * matrix[i][j + 1] * matrix[i][j + 2] * matrix[i][j + 3];
if (challenger > champion) {
champion = challenger;
}
}
}

if (oneChecker) {
return 1;
} else if (twoChecker) {
return 16;
} else return champion;
}