Skip to content

Instantly share code, notes, and snippets.

@szemate
Last active October 13, 2022 19:25
Show Gist options
  • Save szemate/21efaad4b2ec6df10df439c4f8df49a6 to your computer and use it in GitHub Desktop.
Save szemate/21efaad4b2ec6df10df439c4f8df49a6 to your computer and use it in GitHub Desktop.
The most common elementary algorithms in JavaScript
// The most common elementary algorithms in JavaScript
'use strict';
const testNumbers = [8, 6, 3, 7, 3, 8, 4, 4, 9, 1, 2, 8];
// 1. Search
function contains(array, elemToFind) {
for (let i = 0; i < array.length; i++) {
if (array[i] === elemToFind) {
return true;
}
}
return false;
}
console.log(contains(testNumbers, 4));
// 2. Search for any one of multiple elements
function containsAnyOf(array, elemsToFind) {
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < elemsToFind.length; j++) {
if (array[i] === elemsToFind[j]) {
return true;
}
}
}
return false;
}
console.log(containsAnyOf(testNumbers, [3, 5]));
// 3. Counting
function count(array, elemToCount) {
let count = 0;
for (let i = 0; i < array.length; i++) {
if (array[i] === elemToCount) {
count = count + 1;
}
}
return count;
}
console.log(count(testNumbers, 3));
// 4. Filtering
function filter(array, elemToFind) {
let filteredArray = [];
for (let i = 0; i < array.length; i++) {
if (array[i] === elemToFind) {
filteredArray.push(array[i]);
}
}
return filteredArray;
}
console.log(filter(testNumbers, 4));
// 5. Summing
function sum(numbers) {
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum = sum + numbers[i];
}
return sum;
}
console.log(sum(testNumbers));
// 6. Finding the minimum value
function min(numbers) {
let minNumber = numbers[0];
for (let i = 1; i < numbers.length; i++) {
if (numbers[i] < minNumber) {
minNumber = numbers[i];
}
}
return minNumber;
}
console.log(min(testNumbers));
// 7. Finding the maximum value
function max(numbers) {
let maxNumber = numbers[0];
for (let i = 1; i < numbers.length; i++) {
if (numbers[i] > maxNumber) {
maxNumber = numbers[i];
}
}
return maxNumber;
}
console.log(max(testNumbers));
// 8. Calculating the number of occurrences
function getFrequencies(array) {
let frequencies = {};
for (let i = 0; i < array.length; i++) {
let currentElem = array[i];
if (frequencies[currentElem] === undefined) {
frequencies[currentElem] = 0;
}
frequencies[currentElem] = frequencies[currentElem] + 1;
}
return frequencies;
}
console.log(getFrequencies(testNumbers));
// 9. Finding the element with the highest occurrence
function getMostFrequentElement(array) {
let frequencies = getFrequencies(array);
let keys = Object.keys(frequencies);
let maxKey = keys[0];
let maxCount = frequencies[maxKey];
for (let i = 1; i < keys.length; i++) {
let currentKey = keys[i];
let currentCount = frequencies[currentKey];
if (currentCount > maxCount) {
maxCount = currentCount;
maxKey = currentKey;
}
}
return maxKey;
}
console.log(getMostFrequentElement(testNumbers));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment