From 93b800a292c3ad7b8a4b90f1e0b83e20644a88bf Mon Sep 17 00:00:00 2001 From: annacv <21217131+annacv@users.noreply.github.com> Date: Tue, 25 Jun 2019 23:10:12 +0200 Subject: [PATCH 1/5] [AC] Disaster! --- src/functions-and-arrays.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 2fcd81e6e..0d1974b19 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -1,4 +1,7 @@ // Find the maximum +function maxOfTwoNumbers(a, b) { + return Math.max(a, b); +} // Finding Longest Word var words = [ @@ -11,14 +14,44 @@ var words = [ 'crackpot' ]; +var longest = ''; + +function findLongestWord() { + for (var i = 0; i < words.length; i++) { + if (words[i].length > longest.length) { + longest = words[i]; + } else if (words[i].length = longest.length){ + words.pop(words[i]); + } else { + words.pop(words[i]); + } + } + return words; +} + // Calculating a Sum var numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; +function sumArray() { + var sum = 0; + for (var i = 0; i < numbers.length; i++) { + sum += numbers[i]; + } + return sum; +} + // Calculate the Average var numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9]; +function averageNumbers() { + var sum = sumArray(numbersAvg); + var average = sum / numbersAvg.length; + return average; +} + + // Array of Strings var wordsArr = [ 'seat', From 5502d17a7603b4ad7239146ee0e1e15a880bf490 Mon Sep 17 00:00:00 2001 From: annacv <21217131+annacv@users.noreply.github.com> Date: Mon, 1 Jul 2019 23:54:16 +0200 Subject: [PATCH 2/5] [AC] Some refactor --- src/functions-and-arrays.js | 101 +++++++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 18 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 0d1974b19..7426d7fad 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -1,9 +1,14 @@ // Find the maximum -function maxOfTwoNumbers(a, b) { + +/*function maxOfTwoNumbers(a, b) { return Math.max(a, b); -} +}*/ + +var maxOfTwoNumbers = (a, b) => + a > b ? a : b; // Finding Longest Word + var words = [ 'mystery', 'brother', @@ -14,45 +19,52 @@ var words = [ 'crackpot' ]; -var longest = ''; - -function findLongestWord() { - for (var i = 0; i < words.length; i++) { - if (words[i].length > longest.length) { - longest = words[i]; - } else if (words[i].length = longest.length){ - words.pop(words[i]); - } else { - words.pop(words[i]); +function findLongestWord(arr) { + var longest = arr[0]; + for (var i = 1; i < arr.length; i++) { + var word = arr[i]; + if (word.length > longest.length) { + longest = word; } } - return words; + return longest; } + // Calculating a Sum var numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10]; -function sumArray() { +/*function sumArray(numbers) { var sum = 0; for (var i = 0; i < numbers.length; i++) { sum += numbers[i]; } return sum; -} +}*/ + +var sumArray = (numbers) => + numbers.reduce(function(acc, number) { + return acc + number; +}, 0); + // Calculate the Average var numbersAvg = [2, 6, 9, 10, 7, 4, 1, 9]; -function averageNumbers() { - var sum = sumArray(numbersAvg); - var average = sum / numbersAvg.length; +function averageNumbers(arr) { + if (arr.length === 0) { + return undefined; + } + var sum = sumArray(arr); + var average = sum / arr.length; return average; } // Array of Strings + var wordsArr = [ 'seat', 'correspond', @@ -66,7 +78,19 @@ var wordsArr = [ 'palace' ]; +function averageWordLength(arr) { + if (arr.length === 0) { + return undefined; + } + var sumOfCharacters = 0; + for (var i = 0; i < arr.length; i++) { + sumOfCharacters += arr[i].length; + } + return sumOfCharacters / arr.length; +} + // Unique Arrays + var wordsUnique = [ 'crab', 'poison', @@ -81,7 +105,21 @@ var wordsUnique = [ 'bring' ]; +function uniquifyArray(arr) { + if (arr.length === 0) { + return undefined; + } + var filtered = []; + for (var i = 0; i < arr.length; i++) { + if (filtered.indexOf(arr[i]) === -1) { + filtered.push(arr[i]); + } + } + return filtered; +} + // Finding Elements + var wordsFind = [ 'machine', 'subset', @@ -93,7 +131,19 @@ var wordsFind = [ 'disobedience' ]; +function doesWordExist(arr, word) { + var result = false; + for (var i = 0; i < arr.length; i++) { + if (arr[i] === word) { + var result = true; + } + } + return result; +} + + // Counting Repetion + var wordsCount = [ 'machine', 'matter', @@ -107,6 +157,21 @@ var wordsCount = [ 'disobedience', 'matter' ]; + +function howManyTimes(arr, word) { + var counter = 0; + if (arr.length === 0) { + return false; + } + for (var i = 0; i < arr.length; i++) { + if (arr[i] === word) { + counter++; + } + } + return counter; +} + + // Bonus Quest var matrix = [ From 1382a2d743e212b2729e955b70b5c216c78683e4 Mon Sep 17 00:00:00 2001 From: annacv <21217131+annacv@users.noreply.github.com> Date: Mon, 1 Jul 2019 23:55:21 +0200 Subject: [PATCH 3/5] index for testing --- src/index.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/index.html diff --git a/src/index.html b/src/index.html new file mode 100644 index 000000000..3c8ead334 --- /dev/null +++ b/src/index.html @@ -0,0 +1,17 @@ + + + + + sthg + + + + + + + +

sthg

+ + + + From 12c749469abf097030fe227cc7c09f564c77b3cc Mon Sep 17 00:00:00 2001 From: annacv <21217131+annacv@users.noreply.github.com> Date: Wed, 18 Sep 2019 13:23:14 +0200 Subject: [PATCH 4/5] bonus nearly end --- src/functions-and-arrays.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 7426d7fad..3e437e62b 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -196,3 +196,24 @@ var matrix = [ [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(matrix, adjacent) { + var max = 0; + + var dx = [1, 0, 1,-1]; + var dy = [0, 1, 1, 1]; + + for (var y = 0; y < matrix.length; y++) { + for (var x = 0; x < matrix[y].length; x++) { + for (var d = 0; d < 4; d++) { + var p = 1; + for (var i = 0; i < adjacent; i++) { + p*= get(matrix, y + i * dy[d], x + i * dx[d]); + } + max = Math.max(p, max); + } + } + } + return max; +} +greatestProduct(matrix, 4); From 9901adbf4d2f51f09e155a1ae93bbc4dd2f95c81 Mon Sep 17 00:00:00 2001 From: annacv <21217131+annacv@users.noreply.github.com> Date: Wed, 18 Sep 2019 18:27:00 +0200 Subject: [PATCH 5/5] other versions --- src/functions-and-arrays.js | 65 +++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 17 deletions(-) diff --git a/src/functions-and-arrays.js b/src/functions-and-arrays.js index 3e437e62b..3712a98b3 100644 --- a/src/functions-and-arrays.js +++ b/src/functions-and-arrays.js @@ -197,23 +197,54 @@ var matrix = [ [1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48] ]; -function greatestProduct(matrix, adjacent) { - var max = 0; - - var dx = [1, 0, 1,-1]; - var dy = [0, 1, 1, 1]; - - for (var y = 0; y < matrix.length; y++) { - for (var x = 0; x < matrix[y].length; x++) { - for (var d = 0; d < 4; d++) { - var p = 1; - for (var i = 0; i < adjacent; i++) { - p*= get(matrix, y + i * dy[d], x + i * dx[d]); - } - max = Math.max(p, max); +// function greatestProduct(matrix, adjacent) { +// var max = 0; + +// var dx = [1, 0, 1,-1]; +// var dy = [0, 1, 1, 1]; + +// for (var y = 0; y < matrix.length; y++) { +// for (var x = 0; x < matrix[y].length; x++) { +// for (var d = 0; d < 4; d++) { +// var p = 1; +// for (var i = 0; i < adjacent; i++) { +// p*= get(matrix, y + i * dy[d], x + i * dx[d]); +// } +// max = Math.max(p, max); +// } +// } +// } +// return max; +// } +// greatestProduct(matrix, 4); + + +// via 2 + +function greatestProduct(matrix) { + var horizontal, vertical, diagonal; + var greatProduct = 0; + + for (var i=0, nRows = matrix.length; i < nRows - 1; i++) { + for (var j=0, nCols = matrix[0].length; j < nCols - 1; j++) { + // 4 horizontal elements + if (j < nCols-3) { + horizontal = matrix[i][j] * matrix[i][j+1] * matrix[i][j+2] * matrix[i][j+3]; } + + // 4 vertical elements + if (i < nRows-3) { + vertical = matrix[i][j] * matrix[i+1][j] * matrix[i+2][j] * matrix[i+3][j]; + } + + // 4 Diagonal elements + if (i < nRows-3 && j < nCols-3) { + diagonal = matrix[i][j] * matrix[i+1][j+1] * matrix[i+2][j+2] * matrix[i+3][j+3]; + } + + greatProduct = Math.max(greatProduct, horizontal, vertical, diagonal); } } - return max; -} -greatestProduct(matrix, 4); + + return greatProduct; +} \ No newline at end of file