Skip to content

lyndseybrowning/javascript-snippets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents generated with DocToc

JavaScript Snippets

Short JavaScript snippets.

Created for educational purposes.

array-adjacents

Find adjacent elements in a 2D Matrix, for example:

[
	['A', 'B', 'C'],
	['D', 'E', 'F'],
	['G', 'H', 'I']
]

findAjacents([0, 0]); // [ [0,1], [1,0], [1, 1] ]

array-match

Determines if two arrays are exactly the same, for example:

arrayMatch([1,1], [1,1]); // true
arrayMatch([1,0], [1,1]); // false
arrayMatch([1, '0'], [1, 0]); // false

array-occurrences

Counts the number of occurrences (strict equal comparison) of an element in an array, for example:

const array = [1, 1, 2, 3, 4, 5];

getCount(array, 1); // 2
getCount(array, 5); // 1
getCount(array, 'a'); // 0

array-reject

Opposite of Array.filter(). Removes the requested items from an existing array. Example:

const array = [1, 1, 2, 3, 4, 5];

arrayReject(array, (item) => item > 2); // [1, 1, 2];
arrayReject(array, (item) => typeof item === 'number')); // [];
arrayReject(array, (item) => item === 1); // [2, 3, 4, 5];

array-sum

Sums all numeric values in an array using Array.filter() to filter out numeric values and Array.reduce() to sum. Example:

arraySum([1, 2, 3, 4, 'a']); // 10
arraySum([10, 10000, 20]); // 10030

british-date

Formats a given date to british formats, for example:

formatDate(new Date()); // 12/02/2016
formatDate('2014-10-12 09:00 AM'); // 12/10/2014
formatDate(new Date(), '-'); // 12-02-2016

modulus

Calculate modulus with modulus operator and without:

getModulus(20, 3); // 2

array-duplicate

Multiple methods for duplicating values of an array using different techniques such as:

Example using ES6 spread:

const duplicateSpread = (array) => {
  const duplicate = [...array, ...array];

  return duplicate.sort();
};

const array = [1, 2, 3];
console.log(duplicateSpread(array)); // [1, 1, 2, 2, 3, 3]

convert-querystring

Takes a querystring and converts it to an object e.g.

const convert = convertQueryString('first_name=lyndsey&last_name=browning&likes=javascript&likes=react&likes=sass');

/*
{
  first_name: 'Lyndsey',
  last_name: 'Browning',
  likes: [
    'javascript',
	'react',
	'sass'
  ]
}
*/

string-permutations

Find all permutations of a given string, e.g.

const permutations = permute('abc');

console.log(permutations); // ["abc", "acb", "bac", "bca", "cab", "cba"]

object-deep-clone

Deep clone an object preventing the original input being mutated.

const source = {
  name: 'Lyndsey',
  age: 30,
  likes: ['javascript', 'css'],
  other: {
  	color: 'orange'
  }
};

Example standard shallow-clone using Object.assign:

const shallow = Object.assign({}, source);
shallow.other.color = 'red';

console.log(source.other.color); // red. obj is mutated!

Example using deep clone method:

const cloned = clone(source);
cloned.other.color = 'red';

console.log(source.other.color); // orange
console.log(cloned.other.color); // red

Custom Array methods

Made to further my understanding of existing array methods and callback functions.

array-foreach

Custom version of Array.forEach.

This method takes an existing array and performs a callback function on each item in turn.

forEach([1, 2, 3, 4, 5], (item) => {
  console.log(item); // 1, 2, 3, 4, 5
});

array-filter

Custom version of Array.filter.

This method takes an existing array and returns a new array with the items that comply with the callback function.

Example:

const array = [1, 2, 3, 4, 5];
const divisibleByTwo = filter(array, (item, index) => {
	return item % 2 === 0;
});

console.log(divisibleByTwo); // [2, 4]

array-find

Custom version of Array.find.

This method finds the first instance of an item that passes the callback function (truthy).

Example:

const array = [1, 2, 3, 4, 5];
const findGreaterThan3 = find(array, item => item > 3);

console.log(findGreaterThan3); // 4

array-findIndex

Custom version of Array.findIndex.

This method is the same as Array.find but the index of the first instance of an item is found, instead of the item itself.

Example:

const array = [1, 2, 3, 4, 5];
const findGreaterThan3Index = findIndex(array, item => item > 3);

console.log(findGreaterThan3Index); // 3

array-every

Custom version of Array.every.

Returns truthy if every item in the array passed the callback function.

Example:

const array = [1, 2, 3, 4, 5];
const singleDigits = every(array, item => item < 10);
const greaterThan10 = every(array, item => item > 10);

console.log(singleDigits); // true
console.log(greaterThan10); // false

array-reduce

Custom version of Array.reduce.

The reduce method takes an existing array, a callback function to be acted upon each element and an initial value. The existing array is reduced down to a single value; its type is determined by the initial value.

The result of the previous iteration is passed to the next iteration and thus an accumulator is created.

Example:

const array = [1, 2, 3, 4, 5];
const sumReduce = reduce(array, (acc, cur) => acc + cur, 0);
const reduceToString = reduce(array, (acc, cur) => acc += cur, '');

console.log(sumReduce); // 15
console.log(reduceToString); // 12345

array-map

Custom version of Array.map.

This method takes an array and performs a callback function on each element in the array that transforms it, producing a new array of mapped values.

Example:

const array = [1, 2, 3, 4, 5];
const doubleAll = map(array, item => item * 2);

console.log(doubleAll); // [2, 4, 6, 8, 10]

Releases

No releases published

Packages

No packages published