From 79695a28b65108863bede0e1e9fe8d7ba411cd1a Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Fri, 26 Jan 2024 21:37:37 +0100 Subject: [PATCH 1/8] code for iterations 1-3 of lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 202 +++++++++++++++++++++++++----------- 1 file changed, 139 insertions(+), 63 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 3a7dbec41..32850684d 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -1,119 +1,195 @@ // Iteration #1: Find the maximum -function maxOfTwoNumbers() {} - - +function maxOfTwoNumbers(numberOne, numberTwo) { + if (numberOne > numberTwo) { + return numberOne; + } else { + return numberTwo; + } +} // 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(wordArray) { + if (wordArray == "") { + return null; + } else { + let longerWord = ""; + wordArray.forEach((word) => { + if (word.length > longerWord.length) { + longerWord = word; + } + }); + return longerWord; + } +} // Iteration #3: Calculate the sum const numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; -function sumNumbers() {} - - +function sumNumbers(numberArray) { + let numberSum = 0; + numberArray.forEach(number => { + numberSum += number; + }); + return numberSum; +} // Iteration #3.1 Bonus: function sum() {} - - // Iteration #4: Calculate the average // Level 1: Array of numbers const numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9]; function averageNumbers() {} - // 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() {} // Bonus - Iteration #4.1 function avg() {} // Iteration #5: Unique arrays const wordsUnique = [ - 'crab', - 'poison', - 'contagious', - 'simple', - 'bring', - 'sharp', - 'playground', - 'poison', - 'communion', - 'simple', - 'bring' + "crab", + "poison", + "contagious", + "simple", + "bring", + "sharp", + "playground", + "poison", + "communion", + "simple", + "bring", ]; function uniquifyArray() {} - - // 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() {} - - // Iteration #7: Count repetition const wordsCount = [ - 'machine', - 'matter', - 'subset', - 'trouble', - 'starting', - 'matter', - 'eating', - 'matter', - 'truth', - 'disobedience', - 'matter' + "machine", + "matter", + "subset", + "trouble", + "starting", + "matter", + "eating", + "matter", + "truth", + "disobedience", + "matter", ]; function howManyTimes() {} - - // 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') { +if (typeof module !== "undefined") { module.exports = { maxOfTwoNumbers, findLongestWord, @@ -125,6 +201,6 @@ if (typeof module !== 'undefined') { uniquifyArray, doesWordExist, howManyTimes, - greatestProduct + greatestProduct, }; } From a919b39089a0b3089c0ad793045b0e3a9efb8cf0 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Fri, 26 Jan 2024 22:06:04 +0100 Subject: [PATCH 2/8] js code for iteration 3.1 Bonus lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 32850684d..fba023d87 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -37,14 +37,40 @@ const numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; function sumNumbers(numberArray) { let numberSum = 0; - numberArray.forEach(number => { + numberArray.forEach((number) => { numberSum += number; }); return numberSum; } // Iteration #3.1 Bonus: -function sum() {} +const mixedArr = [6, 12, "miami", 1, true, "barca", "200", "lisboa", 8, 10]; +// should return: 57 +function sum(mixedArray) { + sumNumberMixedArray = 0; + mixedArray.forEach((arrayEl) => { + if (typeof arrayEl === "string" || typeof arrayEl === "number" || typeof arrayEl === "boolean") { + switch (typeof arrayEl) { + case "string": + sumNumberMixedArray += arrayEl.length; + break; + case "number": + sumNumberMixedArray += arrayEl; + break; + case "boolean": + sumNumberMixedArray += Number(arrayEl); + break; + default: + } +} else { + throw new Error( + "This array has elements that are not strings, numbers or booleans. Please try again." + ); + } + }); + return sumNumberMixedArray; +} + // Iteration #4: Calculate the average // Level 1: Array of numbers From 8dcf4412046e144e9a414fc2cdf3d8a7ea480572 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 09:20:10 +0100 Subject: [PATCH 3/8] js code for iteration 4 lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index fba023d87..73e090c09 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -75,8 +75,13 @@ function sum(mixedArray) { // Iteration #4: Calculate the average // Level 1: Array of numbers const numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9]; - -function averageNumbers() {} +function averageNumbers(averageArray) { + if (averageArray == "") { + return null; + } else { + return (sumNumbers(averageArray)/averageArray.length); + } +} // Level 2: Array of strings const wordsArr = [ @@ -92,10 +97,28 @@ const wordsArr = [ "palace", ]; -function averageWordLength() {} +function averageWordLength(wordsArray) { + let wordLengthTotal = 0; + if (wordsArray == "") { + return null; + } else { + wordsArray.forEach((word) => { + wordLengthTotal += word.length; + }); + return (wordLengthTotal/wordsArray.length); + } +} // Bonus - Iteration #4.1 -function avg() {} +//mixedArr = [6, 12, 'miami', 1, true, 'barca', '200', 'lisboa', 8, 10]; +// should return: 5.7 +function avg(mixedArray) { + if (mixedArray == "") { + return null; + } else { + return (sum(mixedArray)/mixedArray.length); + } +} // Iteration #5: Unique arrays const wordsUnique = [ From d73d9850d8eab80cfa0ee07f36120aa1973e1f07 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 11:52:20 +0100 Subject: [PATCH 4/8] js cide fir iteration 5 lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 73e090c09..d281e5854 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -135,7 +135,19 @@ const wordsUnique = [ "bring", ]; -function uniquifyArray() {} +function uniquifyArray(uniqueWordArray) { + let singleWordArr = []; + if (uniqueWordArray == "") { + return null; + } else { + uniqueWordArray.forEach(word => { + if (!singleWordArr.includes(word)) { + singleWordArr.push(word); + } + }); + return singleWordArr; + } +} // Iteration #6: Find elements const wordsFind = [ From 18f6ef119b458f78df3bb1272413dbe8dc5ea89a Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 13:01:39 +0100 Subject: [PATCH 5/8] js code for iteration 6 lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index d281e5854..50c395270 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -161,7 +161,17 @@ const wordsFind = [ "disobedience", ]; -function doesWordExist() {} +function doesWordExist(wordSearchArray, searchWord) { + if (wordSearchArray == "") { + return null; + } else { + if (wordSearchArray.includes(searchWord)) { + return true; + } else { + return false; + } + } +} // Iteration #7: Count repetition const wordsCount = [ From 634065ac1fe1467c314fad9bee54a75a673c18c0 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 13:07:34 +0100 Subject: [PATCH 6/8] js code for itereation 7 lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 50c395270..7b76027fb 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -188,7 +188,19 @@ const wordsCount = [ "matter", ]; -function howManyTimes() {} +function howManyTimes(wordCountArray, wordToCount) { + let countWordTimes = 0; + if (wordCountArray == "") { + return 0; + } else { + wordCountArray.forEach(word => { + if (word == wordToCount) { + countWordTimes++ + } + }); + return countWordTimes; + } +} // Iteration #8: Bonus const matrix = [ From e44a47378e62fd309ffd0cc6b8a45cc998394217 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 21:27:28 +0100 Subject: [PATCH 7/8] partial js code for iteration 8 of lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 134 ++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 7b76027fb..c5ba943b9 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -7,6 +7,8 @@ function maxOfTwoNumbers(numberOne, numberTwo) { } } +maxOfTwoNumbers(30, 20); + // Iteration #2: Find longest word const words = [ "mystery", @@ -49,7 +51,11 @@ const mixedArr = [6, 12, "miami", 1, true, "barca", "200", "lisboa", 8, 10]; function sum(mixedArray) { sumNumberMixedArray = 0; mixedArray.forEach((arrayEl) => { - if (typeof arrayEl === "string" || typeof arrayEl === "number" || typeof arrayEl === "boolean") { + if ( + typeof arrayEl === "string" || + typeof arrayEl === "number" || + typeof arrayEl === "boolean" + ) { switch (typeof arrayEl) { case "string": sumNumberMixedArray += arrayEl.length; @@ -62,7 +68,7 @@ function sum(mixedArray) { break; default: } -} else { + } else { throw new Error( "This array has elements that are not strings, numbers or booleans. Please try again." ); @@ -71,7 +77,6 @@ function sum(mixedArray) { return sumNumberMixedArray; } - // Iteration #4: Calculate the average // Level 1: Array of numbers const numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9]; @@ -79,7 +84,7 @@ function averageNumbers(averageArray) { if (averageArray == "") { return null; } else { - return (sumNumbers(averageArray)/averageArray.length); + return sumNumbers(averageArray) / averageArray.length; } } @@ -105,7 +110,7 @@ function averageWordLength(wordsArray) { wordsArray.forEach((word) => { wordLengthTotal += word.length; }); - return (wordLengthTotal/wordsArray.length); + return wordLengthTotal / wordsArray.length; } } @@ -116,7 +121,7 @@ function avg(mixedArray) { if (mixedArray == "") { return null; } else { - return (sum(mixedArray)/mixedArray.length); + return sum(mixedArray) / mixedArray.length; } } @@ -140,7 +145,7 @@ function uniquifyArray(uniqueWordArray) { if (uniqueWordArray == "") { return null; } else { - uniqueWordArray.forEach(word => { + uniqueWordArray.forEach((word) => { if (!singleWordArr.includes(word)) { singleWordArr.push(word); } @@ -193,9 +198,9 @@ function howManyTimes(wordCountArray, wordToCount) { if (wordCountArray == "") { return 0; } else { - wordCountArray.forEach(word => { + wordCountArray.forEach((word) => { if (word == wordToCount) { - countWordTimes++ + countWordTimes++; } }); return countWordTimes; @@ -203,72 +208,67 @@ function howManyTimes(wordCountArray, wordToCount) { } // Iteration #8: Bonus -const matrix = [ +/* 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], +]; */ +const matrix = [ + [10, 10, 10, 10, 10], + [10, 10, 20, 30, 40], + [10, 10, 10, 30, 10], + [10, 10, 10, 30, 10], + [10, 10, 10, 30, 10], + [10, 10, 30, 40, 50], + [10, 10, 10, 10, 10], ]; -function greatestProduct() {} +function greatestProduct(matrix, row, column) { + /* console.log(matrix[row][column]); */ + + let higherProduct = 0; + + matrix.forEach((row) => { + for (let coli = 0; coli < row.length; coli++) { + let productofRows = + row[coli] * row[coli + 1] * row[coli + 2] * row[coli + 3]; + if (higherProduct < productofRows) { + higherProduct = productofRows; + } + } + }); + + /* for (let row = 0; row < matrix.length; row++) { + for (let col = 0; col < matrix[0].length; col++) { + let productofCols = + matrix[0][col] * + matrix[0 + 1][col] * + matrix[0 + 2][col] * + matrix[0 + 3][col]; + } + } */ + console.log(higherProduct); + return higherProduct; +} + +greatestProduct(matrix, matrix.length - 1, matrix[0].length - 2); // The following is required to make unit tests work. /* Environment setup. Do not modify the below code. */ From 423e2f33ff991fe34040a868adeb521300e9fe06 Mon Sep 17 00:00:00 2001 From: Eber Brown Date: Sat, 27 Jan 2024 23:02:36 +0100 Subject: [PATCH 8/8] js code for iteration 8 of of lab-javascript-functions-and-arrays --- src/functions-and-arrays.js | 58 +++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index c5ba943b9..0dcfc43be 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -208,7 +208,7 @@ function howManyTimes(wordCountArray, wordToCount) { } // Iteration #8: Bonus -/* const matrix = [ +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], @@ -229,46 +229,48 @@ function howManyTimes(wordCountArray, wordToCount) { [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], -]; */ -const matrix = [ - [10, 10, 10, 10, 10], - [10, 10, 20, 30, 40], - [10, 10, 10, 30, 10], - [10, 10, 10, 30, 10], - [10, 10, 10, 30, 10], - [10, 10, 30, 40, 50], - [10, 10, 10, 10, 10], ]; -function greatestProduct(matrix, row, column) { - /* console.log(matrix[row][column]); */ - - let higherProduct = 0; +function greatestProduct(matrix) { + let higherProductRows = 0; matrix.forEach((row) => { for (let coli = 0; coli < row.length; coli++) { let productofRows = row[coli] * row[coli + 1] * row[coli + 2] * row[coli + 3]; - if (higherProduct < productofRows) { - higherProduct = productofRows; + if (higherProductRows < productofRows) { + higherProductRows = productofRows; } } }); - /* for (let row = 0; row < matrix.length; row++) { - for (let col = 0; col < matrix[0].length; col++) { - let productofCols = - matrix[0][col] * - matrix[0 + 1][col] * - matrix[0 + 2][col] * - matrix[0 + 3][col]; + var transposedMatrix = []; + for (var col = 0; col < matrix[0].length; col++) { + transposedMatrix[col] = []; + for (var row = 0; row < matrix.length; row++) { + transposedMatrix[col][row] = matrix[row][col]; } - } */ - console.log(higherProduct); - return higherProduct; -} + } + let higherProductCols = 0; + transposedMatrix.forEach((row) => { + for (let coli = 0; coli < row.length; coli++) { + let productOfCols = row[coli] * row[coli + 1] * row[coli + 2] * row[coli + 3]; + if (higherProductCols < productOfCols) { + higherProductCols = productOfCols; + } + } + }); + -greatestProduct(matrix, matrix.length - 1, matrix[0].length - 2); + if (higherProductRows > higherProductCols) { + console.log(higherProductRows); + return higherProductRows + } else { + console.log(higherProductCols); + return higherProductCols + } + +} // The following is required to make unit tests work. /* Environment setup. Do not modify the below code. */