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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ Do this in the form of a function `uniquifyArray` that receives an array of word
You can use the following array to test your solution:

```javascript
const words = [
const words = [
'crab',
'poison',
'contagious',
Expand Down
280 changes: 236 additions & 44 deletions src/functions-and-arrays.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,122 @@
// Iteration #1: Find the maximum
function maxOfTwoNumbers() {}


function maxOfTwoNumbers(x, y) {
return x > y ? x : y;
}

// Iteration #2: Find longest word
const words = ['mystery', 'brother', 'aviator', 'crocodile', 'pearl', 'orchard', 'crackpot'];

function findLongestWord() {}

const words = [
'mystery',
'brother',
'aviator',
'crocodile',
'pearl',
'orchard',
'crackpot',
];

function findLongestWord(words) {
//check if the array is empty
if (words.length === 0) {
return null;
}
//initialize longest with the first element of the array
let longest = words[0];
//iterate through the array from the second word
for (let i = 1; i < words.length; i++) {
if (words[i].length > longest.length) {
//here is where longest gets updated
longest = words[i];
}
}
return longest;
}

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

function sumNumbers() {}


function sumNumbers(numbers) {
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum;
}

// Iteration #3.1 Bonus:
function sum() {}


function sum(mixedArr) {
sumLength = 0;

for (let i = 0; i < mixedArr.length; i++) {
const value = mixedArr[i];

if (typeof value === 'string') {
sumLength += value.length;
} else if (typeof value === 'number') {
sumLength += value;
} else if (typeof value === 'boolean') {
sumLength += value ? 1 : 0;
} else if (typeof value === 'object') {
throw new Error('not a primitive data type');
}
}

return sumLength;
}

// Iteration #4: Calculate the average
// Level 1: Array of numbers
const numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9];

function averageNumbers() {}
function averageNumbers(numbersAvg) {
if (numbersAvg.length === 0) {
return null;
}
//here I reuse the function created above
const sum = sumNumbers(numbersAvg);

const avg = sum / numbersAvg.length;
return avg;
}

// Level 2: Array of strings
const wordsArr = ['seat', 'correspond', 'linen', 'motif', 'hole', 'smell', 'smart', 'chaos', 'fuel', 'palace'];
const wordsArr = [
'seat',
'correspond',
'linen',
'motif',
'hole',
'smell',
'smart',
'chaos',
'fuel',
'palace',
];

function averageWordLength() { }
function averageWordLength(wordsArr) {
if (wordsArr.length === 0) {
return null;
}
//get the sum of the lengths
let sumLength = 0;

for (let i = 0; i < wordsArr.length; i++) {
sumLength = wordsArr[i].length;
}
const avgLength = sumLength / wordsArr.length;
return avgLength;
}

// Bonus - Iteration #4.1
function avg() {}
function avg(mixedArr) {
if (mixedArr.length === 0) {
return null;
}
//here I reuse the function created above
const total = sum(mixedArr);

const average = total / mixedArr.length;
return average;
}

// Iteration #5: Unique arrays
const wordsUnique = [
Expand All @@ -49,19 +130,80 @@ const wordsUnique = [
'poison',
'communion',
'simple',
'bring'
'bring',
];

function uniquifyArray() {}

function uniquifyArray(wordsUnique) {
if (wordsUnique.length === 0) {
return null;
}
const uniqueArr = [];

for (let i = 0; i < wordsUnique.length; i++) {
let word = wordsUnique[i];
if (uniqueArr.indexOf(word) === -1) {
//here is where I build the new array
uniqueArr.push(word);
}
}
return uniqueArr;
}

//test example
const words1 = [
'crab',
'poison',
'contagious',
'simple',
'bring',
'sharp',
'playground',
'poison',
'communion',
'simple',
'bring',
];
const only = uniquifyArray(words1);
console.log(only);

// Iteration #6: Find elements
const wordsFind = ['machine', 'subset', 'trouble', 'starting', 'matter', 'eating', 'truth', 'disobedience'];
const wordsFind = [
'machine',
'subset',
'trouble',
'starting',
'matter',
'eating',
'truth',
'disobedience',
];

function doesWordExist() {}
function doesWordExist(wordsFind, wordsSearch) {
if (wordsFind.length === 0) {
return null;
} else {
if (wordsFind.includes(wordsSearch)) {
return true;
} else {
return false;
}
}
}

//test case

const wordsF = [
'machine',
'subset',
'trouble',
'starting',
'matter',
'eating',
'truth',
'disobedience',
];
const wordsFF = doesWordExist('machine', 'machine');
console.log(wordsFF);

// Iteration #7: Count repetition
const wordsCount = [
Expand All @@ -75,42 +217,92 @@ const wordsCount = [
'matter',
'truth',
'disobedience',
'matter'
'matter',
];

function howManyTimes() {}


function howManyTimes(wordsCount, wordSearch) {
if (wordsCount.length === 0) {
return 0;
}
let times = 0;
for (let i = 0; i < wordsCount.length; i++) {
if (wordsCount[i] === wordSearch) {
times++;
}
}
return times;
}
const timestest = howManyTimes(wordsCount, 'machine');
console.log(timestest);

// Iteration #8: Bonus
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() {}




// The following is required to make unit tests work.
/* Environment setup. Do not modify the below code. */
if (typeof module !== 'undefined') {
Expand All @@ -125,6 +317,6 @@ if (typeof module !== 'undefined') {
uniquifyArray,
doesWordExist,
howManyTimes,
greatestProduct
greatestProduct,
};
}