2017-12-07 00:22:24 +02:00
2017-11-30 19:16:34 +02:00
2017-12-07 00:22:24 +02:00
2017-11-30 19:12:13 +02:00
2017-11-30 17:40:06 +02:00
2017-11-29 19:35:03 +02:00
2017-11-30 17:40:06 +02:00
2017-11-30 18:29:02 +02:00
2017-11-30 17:40:06 +02:00
2017-12-07 00:22:24 +02:00
2017-11-30 17:40:06 +02:00

Logo

30 seconds of code

Curated collection of useful Javascript snippets that you can understand in 30 seconds or less.

  • Use Ctrl + F or command + F to search for a snippet.
  • Contributions welcome, please read contribution guide.

Contents

Anagrams of string (with duplicates)

Use recursion. For each letter in the given string, create all the partial anagrams for the rest of its letters. Use map() to combine the letter with each partial anagram, then reduce() to combine all anagrams in one array. Base cases are for string length equal to 2 or 1.

var anagrams = s => {
  if(s.length <= 2)  return s.length === 2 ? [s, s[1] + s[0]] : [s];
  return s.split('').reduce( (a,l,i) => {
    anagrams(s.slice(0,i) + s.slice(i+1)).map( v => a.push(l+v) );
    return a;
  }, []);
}

Count occurences of a value in array

Use filter() to create an array containing only the items with the specified value, count them using length.

var countOccurences = (arr, value) => arr.filter(v => v === value).length;

Even or odd number

Use Math.abs() to extend logic to negative numbers, check using the modulo (%) operator. Return true if the number is even, false if the number is odd.

var isEven = num => Math.abs(num) % 2 === 0;

Fibonacci array generator

Create an empty array of the specific length, initializing the first two values (0 and 1). Use reduce() to add values into the array, using the sum of the last two values, except for the first two.

var fibonacci = n =>
  Array.apply(null, [0,1].concat(Array(n-2))).reduce(
    (acc, val, i) => {
      acc.push( i>1 ? acc[i-1]+acc[i-2] : val);
      return acc;
    },[]);

Greatest common divisor (GCD)

Use recursion. Base case is when y equals 0. In this case, return x. Otherwise, return the GCD of y and the remainder of the division x/y.

var gcd = (x , y) => !y ? x : gcd(y, x % y);

Initialize array with values

Use Array(n) to create an array of the desired length, fill(v) to fill it with the desired values. You can omit v to use a default value of 0.

var initializeArray = (n, v = 0) =>
  Array(n).fill(v);

Random number in range

Use Math.random() to generate a random value, map it to the desired range using multiplication.

var randomInRange = (min, max) => Math.random() * (max - min) + min;

Randomize order of array

Use sort() to reorder elements, utilizing Math.random() to randomize the sorting.

var randomizeOrder = arr => arr.sort( (a,b) => Math.random() >= 0.5 ? -1 : 1)

Redirect to URL

Use window.location.href or window.location.replace() to redirect to url. Pass a second argument to simulate a link click (true - default) or an HTTP redirect (false).

var redirect = (url, asLink = true) =>
  asLink ? window.location.href = url : window.location.replace(url);

RGB to hexadecimal

Convert each value to a hexadecimal string, using toString(16), then padStart(2,'0') to get a 2-digit hexadecimal value. Combine values using join('').

var rgbToHex = (r, g, b) =>
  [r,g,b].map( v => v.toString(16).padStart(2,'0')).join('');

Sort characters in string (alphabetical)

Split the string using split(''), sort() utilizing localeCompare(), recombine using join('').

var sortCharactersInString = str =>
  str.split('').sort( (a,b) => a.localeCompare(b) ).join('');

Sum of array of numbers

Use reduce() to add each value to an accumulator, initialized with a value of 0.

var sum = arr =>
  arr.reduce( (acc , val) => acc + val, 0);

Swap values of two variables

Use array destructuring to swap values between two variables.

[varA, varB] = [varB, varA];

Unique values of array

Use reduce() to accumulate all unique values in an array. Check if each value has already been added, using indexOf() on the accumulator array.

var uniqueValues = arr =>
  arr.reduce( (acc, val) => {
    if(acc.indexOf(val) === -1)
      acc.push(val);
      return acc;
  }, []);

UUID generator

Use crypto API to generate a UUID, compliant with RFC4122 version 4.

var uuid = _ =>
  ( [1e7]+-1e3+-4e3+-8e3+-1e11 ).replace( /[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  )

Credits

Icons made by Smashicons from www.flaticon.com is licensed by CC 3.0 BY.

Languages
JavaScript 100%