From 4995405575539b44946c6bede8d60100e5d55b41 Mon Sep 17 00:00:00 2001 From: MPastorM Date: Tue, 17 Jan 2017 21:42:03 +0100 Subject: [PATCH 1/2] DONE. --- starter-code/functions-and-arrays.js | 109 ++++++++++++++++++++++++--- 1 file changed, 100 insertions(+), 9 deletions(-) diff --git a/starter-code/functions-and-arrays.js b/starter-code/functions-and-arrays.js index 039bef297..686011bef 100644 --- a/starter-code/functions-and-arrays.js +++ b/starter-code/functions-and-arrays.js @@ -1,6 +1,10 @@ // Find the maximum function maxOfTwoNumbers (first, second) { - + if (first > second) { + return "The largest number is: " + first; + } else { + return "The largest number is: " + second; + } } var largest = maxOfTwoNumbers(2, 6); @@ -8,7 +12,13 @@ console.log(largest); // Finding Longest Word function findLongestWord (words) { - + var x = ""; + for(var i = 0; i < words.length; i++){ + if (words[i].length > x.length) { + x = words[i]; + } + } + return x; } var words = [ @@ -25,7 +35,10 @@ console.log(longest); // Calculating a Sum function sumArray (array) { - + var y = 0; + array.forEach(function(w) { + (y += w); + }); } var numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; @@ -34,7 +47,9 @@ console.log(total); // Calculate the Average function averageNumbers (array) { - + var sum = sumArray(array); + var sumAverage = sum / array.length; + return sumAverage; } var numbers = [2, 6, 9, 10, 7, 4, 1, 9]; @@ -42,8 +57,17 @@ var average = averageNumbers(numbers); console.log(average); // Array of Strings +function sumWordLength(array) { + var letterSum = 0; + for(var i=0; i < array.length; i++) { + letterSum += array[i].length; + } + return letterSum; +} function averageWordLength (array) { - + var sumWords = sumWordLength(array); + var wordAverage = sumWords / array.length; + return wordAverage; } var words = [ @@ -63,7 +87,18 @@ console.log(averageLength); // Unique Arrays function uniquifyArray (array) { - + var arr = []; + var x = 0; + for (i = 0; i < array.length; i++) { + arr.push(array[i]); + } + for (var i =0; i < array.length; i++) { + if (array.indexOf(array[i]) !== i){ + arr.splice(i-x, 1); + x += 1; + } + } + return arr; } var words = [ @@ -79,12 +114,22 @@ var words = [ "simple", "bring" ]; + var uniqued = uniquifyArray(words); console.log(uniqued); // Finding Elements function doesWordExist (wordsArray, word) { - + var x; + for(var i = 0; i < wordsArray.length; i++) { + if (wordsArray[i] === word) { + x = true; + break; + } else { + x= false; + } + } + return x; } var words = [ @@ -106,9 +151,17 @@ console.log(hasDog); // Counting Repetion function howManyTimes (words, word) { - + var x = 0; + for(var i = 0; i < words.length; i++) { + if (words[i] === word) { + x += 1; + break; + } + } + return x; } + var words = [ "machine", "matter", @@ -130,8 +183,46 @@ var howManyDog = howManyTimes(words, "dog"); console.log(howManyDog); // Bonus Quest -function greatestProduct (matrix) { +var x = 0; +var y = 0; +var productOfFourV; +function horizontalIteration (matrix) { + for (var i = 0; i < matrix.length; i++) { + for (var j = 0; j < matrix[i].length; j++) { + var productOfFourH = (matrix[i][j]*matrix[i][j+1]*matrix[i][j+2]*matrix[i][j+3]); + if (productOfFourH > x) { + x = productOfFourH; + } + } + } + return x; +} +function verticalIteration (matrix) { + for (var w = 0; w < matrix.length; w++) { + for (var q = 0; q < matrix[w].length; q++) { + if (w < 16) { + var productOfFourV = (matrix[w][q]*matrix[w+1][q]*matrix[w+2][q]*matrix[w+3][q]); + if (productOfFourV > y) { + y = productOfFourV; + } + } else if (w > 16) { + break; + } + } + } + return y; +} + + +function greatestProduct (matrix) { + horizontalIteration (matrix); + verticalIteration (matrix); + if (x > y) { + return x; + } else { + return y; + } } var matrix = [ From fdd7dee42ebc5ec89f4deff29c5be572ba0b0ce8 Mon Sep 17 00:00:00 2001 From: MPastorM Date: Wed, 18 Jan 2017 09:33:07 +0100 Subject: [PATCH 2/2] Matrix problem fixed. --- starter-code/functions-and-arrays.js | 60 +++++++++++++--------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/starter-code/functions-and-arrays.js b/starter-code/functions-and-arrays.js index 686011bef..fb117ac48 100644 --- a/starter-code/functions-and-arrays.js +++ b/starter-code/functions-and-arrays.js @@ -184,47 +184,41 @@ console.log(howManyDog); // Bonus Quest var x = 0; -var y = 0; -var productOfFourV; -function horizontalIteration (matrix) { + +function greatestProduct (matrix) { for (var i = 0; i < matrix.length; i++) { for (var j = 0; j < matrix[i].length; j++) { - var productOfFourH = (matrix[i][j]*matrix[i][j+1]*matrix[i][j+2]*matrix[i][j+3]); - if (productOfFourH > x) { - x = productOfFourH; + if (i > 0 && i < 19 && j > 0 && j < 19) { + var productOfFour = (matrix[i][j]*matrix[i][j+1]*matrix[i][j-1]*matrix[i-1][j]*matrix[i+1][j]); + if (productOfFour > x) { + x = productOfFour; + } + }else if (i <= 0) { + var productOfThreeTop = (matrix[i][j]*matrix[i][j+1]*matrix[i][j-1]*matrix[i+1][j]); + if (productOfThreeTop > x) { + x = productOfThreeTop; + } + }else if (i >= 19){ + var productOfThreeBottom = (matrix[i][j]*matrix[i][j+1]*matrix[i][j-1]*matrix[i-1][j]); + if (productOfThreeBottom > x) { + x = productOfThreeBottom; + } + }else if (j <= 0) { + var productOfThreeLeft = (matrix[i][j]*matrix[i][j+1]*matrix[i-1][j]*matrix[i+1][j]); + if (productOfThreeLeft > x) { + x = productOfThreeLeft; + } + }else if (j >= 19) { + var productOfThreeRight = (matrix[i][j]*matrix[i][j-1]*matrix[i-1][j]*matrix[i+1][j]); + if (productOfThreeRight > x) { + x = productOfThreeRight; + } } } } return x; } -function verticalIteration (matrix) { - for (var w = 0; w < matrix.length; w++) { - for (var q = 0; q < matrix[w].length; q++) { - if (w < 16) { - var productOfFourV = (matrix[w][q]*matrix[w+1][q]*matrix[w+2][q]*matrix[w+3][q]); - if (productOfFourV > y) { - y = productOfFourV; - } - } else if (w > 16) { - break; - } - } - } - return y; -} - - -function greatestProduct (matrix) { - horizontalIteration (matrix); - verticalIteration (matrix); - if (x > y) { - return x; - } else { - return y; - } -} - 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],