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
150 changes: 150 additions & 0 deletions src/functions-and-arrays.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
// Find the maximum

/*function maxOfTwoNumbers(a, b) {
return Math.max(a, b);
}*/

var maxOfTwoNumbers = (a, b) =>
a > b ? a : b;

// Finding Longest Word

var words = [
'mystery',
'brother',
Expand All @@ -11,15 +19,52 @@ var words = [
'crackpot'
];

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 longest;
}


// Calculating a Sum

var numbers = [6, 12, 1, 18, 13, 16, 2, 1, 8, 10];

/*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(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',
Expand All @@ -33,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',
Expand All @@ -48,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',
Expand All @@ -60,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',
Expand All @@ -74,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 = [
Expand All @@ -98,3 +196,55 @@ 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);


// 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 greatProduct;
}
17 changes: 17 additions & 0 deletions src/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!doctype html>
<html lang="en">

<head>
<title>sthg</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script src="functions-and-arrays.js"></script>

</head>

<body>
<h1>sthg</h1>
</body>
</html>