diff --git a/starter-code/functions-and-arrays.js b/starter-code/functions-and-arrays.js index 039bef297..c63ce14a6 100644 --- a/starter-code/functions-and-arrays.js +++ b/starter-code/functions-and-arrays.js @@ -1,6 +1,12 @@ // Find the maximum function maxOfTwoNumbers (first, second) { - + if (first > second){ + return first; + } else if (first < second) { + return second; + } else { + return "Numbers are equal"; + } } var largest = maxOfTwoNumbers(2, 6); @@ -8,7 +14,15 @@ console.log(largest); // Finding Longest Word function findLongestWord (words) { + var maxLength = 0; + + for (var i = 0; i < words.length; i++) { + if (words[i].length > maxLength) { + maxLength = words[i].length; + } + } + return maxLength; } var words = [ @@ -25,7 +39,7 @@ console.log(longest); // Calculating a Sum function sumArray (array) { - + return array.reduce((a, b) => a + b); } var numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; @@ -34,7 +48,7 @@ console.log(total); // Calculate the Average function averageNumbers (array) { - + return array.reduce((a, b) >= a + b)/array.length; } var numbers = [2, 6, 9, 10, 7, 4, 1, 9]; @@ -42,10 +56,14 @@ var average = averageNumbers(numbers); console.log(average); // Array of Strings -function averageWordLength (array) { +var longest = []; +function averageWordLength (words) { +for (i = 0; i <= words.length -1; i++) { +longest.push(words[i].length); +} + return longest; } - var words = [ "seat", "correspond", @@ -58,14 +76,18 @@ var words = [ "fuel", "palace" ]; + var averageLength = averageWordLength(words); -console.log(averageLength); -// Unique Arrays -function uniquifyArray (array) { +function sumArray2 (averageLength) { + return averageLength.reduce((a, b) => a + b)/averageLength.length; } +var averageLength = sumArray2 (averageLength); + +console.log(averageLength); +// Unique Arrays var words = [ "crab", "poison", @@ -79,13 +101,22 @@ var words = [ "simple", "bring" ]; -var uniqued = uniquifyArray(words); + +var uniqued = words.reduce(function(a,b){ + if (a.indexOf(b) < 0 ) a.push(b); + return a; + },[]); + console.log(uniqued); // Finding Elements function doesWordExist (wordsArray, word) { - -} + for (var i = 0 ; i < wordsArray.length; i++) { + if (word === wordsArray[i]) { + return true;} + } + return false; + } var words = [ "machine", @@ -98,7 +129,7 @@ var words = [ "disobedience" ]; -var hasMatter = doesWordExist(words, "matter"); +var hasMatter = doesWordExist(words, "machine"); console.log(hasMatter); var hasDog = doesWordExist(words, "dog"); @@ -106,7 +137,12 @@ console.log(hasDog); // Counting Repetion function howManyTimes (words, word) { - + var count = 0; + for (var i = 0 ; i < words.length; i++) { + if (words[i] === word) { + count++;} + } + return count; } var words = [ @@ -126,17 +162,28 @@ var words = [ var howManyMatter = howManyTimes(words, "matter"); console.log(howManyMatter); -var howManyDog = howManyTimes(words, "dog"); -console.log(howManyDog); - // Bonus Quest +var product = 0; +var largest = 0; + function greatestProduct (matrix) { + for(var i = 1; i < 19; i++) { + for(var j = 0; j < 17; j++) { + product = matrix[i][j] * matrix[i - 1 ][j + 1] * matrix[i + 1][j + 1] * matrix[i][j + 2]; + if(product > largest) { + largest = product; + } + } + + } + +return largest; } var matrix = [ - [08,02,22,97,38,15,0,40,0,75,04,05,07,78,52,12,50,77,91,08], - [49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,0], + [08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08], + [49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,00], [81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,03,49,13,36,65], [52,70,95,23,04,60,11,42,69,24,68,56,01,32,56,71,37,02,36,91], [22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80], @@ -144,10 +191,10 @@ var matrix = [ [32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70], [67,26,20,68,02,62,12,20,95,63,94,39,63,08,40,91,66,49,94,21], [24,55,58,05,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72], - [21,36,23,09,75,0,76,44,20,45,35,14,0,61,33,97,34,31,33,95], + [21,36,23,09,75,00,76,44,20,45,35,14,00,61,33,97,34,31,33,95], [78,17,53,28,22,75,31,67,15,94,03,80,04,62,16,14,09,53,56,92], - [16,39,05,42,96,35,31,47,55,58,88,24,0,17,54,24,36,29,85,57], - [86,56,0,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58], + [16,39,05,42,96,35,31,47,55,58,88,24,00,17,54,24,36,29,85,57], + [86,56,00,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58], [19,80,81,68,05,94,47,69,28,73,92,13,86,52,17,77,04,89,55,40], [04,52,08,83,97,35,99,16,07,97,57,32,16,26,26,79,33,27,98,66], [88,36,68,87,57,62,20,72,03,46,33,67,46,55,12,32,63,93,53,69], @@ -159,3 +206,78 @@ var matrix = [ var maxProduct = greatestProduct(matrix); console.log(maxProduct); +// => 57,148,146 + + +// greatest product of four adjacent numbers horizontal/vertical/diagonal +var product = 0; +var largest = 0; + +function greatestProduct2 (matrix) { + for(var i = 0; i < 20; i++) { + for(var j = 0; j < 17; j++) { + product = matrix[i][j] * matrix[i][j + 1] * matrix[i][j + 2] * matrix[i][j + 3]; + if(product > largest) { + largest = product; + } + } + + } + + for (var i = 0; i < 17; i++) { + for (var j = 0; j < 20; j++) { + product = matrix[i][j] * matrix[i + 1][j] * matrix[i + 2][j] * matrix[i + 3][j]; + if(product > largest) { + largest = product; + } + } +} + + for(var i = 0; i < 17; i++){ + for(var j = 0; j < 17; j++){ + product = matrix[i][j] * matrix[i + 1][j + 1] * matrix[i + 2][j + 2] * matrix[i + 3][i + 3]; + if(product > largest) { + largest = product; + } + } + } + + for(var i = 0; i < 17; i ++){ + for(var j = 3; j < 20; j ++){ + product = matrix[i][j] * matrix[i + 1][j - 1] * matrix[i + 2][j - 2] * matrix[i + 3][j - 3]; + if(product > largest) { + largest = product; + } + } +} + +return largest; + +} + +var matrix = [ + [08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08], + [49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,00], + [81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,03,49,13,36,65], + [52,70,95,23,04,60,11,42,69,24,68,56,01,32,56,71,37,02,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,03,45,02,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,02,62,12,20,95,63,94,39,63,08,40,91,66,49,94,21], + [24,55,58,05,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72], + [21,36,23,09,75,00,76,44,20,45,35,14,00,61,33,97,34,31,33,95], + [78,17,53,28,22,75,31,67,15,94,03,80,04,62,16,14,09,53,56,92], + [16,39,05,42,96,35,31,47,55,58,88,24,00,17,54,24,36,29,85,57], + [86,56,00,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58], + [19,80,81,68,05,94,47,69,28,73,92,13,86,52,17,77,04,89,55,40], + [04,52,08,83,97,35,99,16,07,97,57,32,16,26,26,79,33,27,98,66], + [88,36,68,87,57,62,20,72,03,46,33,67,46,55,12,32,63,93,53,69], + [04,42,16,73,38,25,39,11,24,94,72,18,08,46,29,32,40,62,76,36], + [20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,04,36,16], + [20,73,35,29,78,31,90,01,74,31,49,71,48,86,81,16,23,57,05,54], + [01,70,54,71,83,51,54,69,16,92,33,48,61,43,52,01,89,19,67,48], +]; + +var maxProduct2 = greatestProduct2(matrix); +console.log(maxProduct2); +// => 70,600,674