From 593efb59bfce7a9f83975838fe30171cb7ce1382 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Feje=C5=A1?=
30 seconds of code
Curated collection of useful Javascript snippets that you can understand in 30 seconds or less.
diff --git a/static-parts/index-start.html b/static-parts/index-start.html
index 210d8357a..3285b3d4e 100644
--- a/static-parts/index-start.html
+++ b/static-parts/index-start.html
@@ -35,6 +35,7 @@
}
+
30 seconds of code
Curated collection of useful Javascript snippets that you can understand in 30 seconds or less.
From bf46c99f7d6981975b1867674764722c4d81944e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Feje=C5=A1?=
30 seconds of code
Curated collection of useful Javascript snippets that you can understand in 30 seconds or less.
@@ -1230,7 +1230,7 @@ Use Number() to check if the coercion holds.
Array.reduce() to create an object, where the keys are produced
Initializes an array containing the numbers in the specified range where start and end are inclusive.
Use Array((end + 1) - start) to create an array of the desired length, Array.map() to fill with the desired values in a range.
You can omit start to use a default value of 0.
const initializeArrayWithRange = (end, start = 0) =>
+const initializeArrayWithRange = (end, start = 0) =>
Array.from({ length: (end + 1) - start }).map((v, i) => i + start);
// initializeArrayWithRange(5) -> [0,1,2,3,4,5]
// initializeArrayWithRange(7, 3) -> [3,4,5,6,7]
@@ -357,7 +357,7 @@ You can omit value to use a default value of 0.
mapObject
Maps the values of an array to an object using a function, where the key-value pairs consist of the original value as the key and the mapped value.
Use an anonymous inner function scope to declare an undefined memory space, using closures to store a return value. Use a new Array to stor the array with a map of the function over its data set and a comma operator to return a second step, without needing to move from one context to another (due to closures and order of operations).
-const mapObject = (arr, fn) =>
+const mapObject = (arr, fn) =>
(a => (a = [arr, arr.map(fn)], a[0].reduce( (acc,val,ind) => (acc[val] = a[1][ind], acc), {}) )) ( );
/*
const squareIt = arr => mapObject(arr, a => a*a)
@@ -407,7 +407,7 @@ Use Array.push() to keep track of pulled values
let removed = [];
let pulled = arr.map((v, i) => pullArr.includes(i) ? removed.push(v) : v)
.filter((v, i) => !pullArr.includes(i))
- arr.length = 0;
+ arr.length = 0;
pulled.forEach(v => arr.push(v));
return removed;
}
@@ -424,7 +424,7 @@ Use Array.push() to keep track of pulled values
Use Array.length = 0 to mutate the passed in array by resetting it's length to zero and Array.push() to re-populate it with only the pulled values.
Use Array.push() to keep track of pulled values
const pullAtValue = (arr, pullArr) => {
- let removed = [],
+ let removed = [],
pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v),
mutateTo = arr.filter((v, i) => !pullArr.includes(v));
arr.length = 0;
@@ -786,7 +786,7 @@ Count and return the number of 1s in the string, using match(
isArmstrongNumber
Checks if the given number is an armstrong number or not.
Convert the given number into array of digits. Use Math.pow() to get the appropriate power for each digit and sum them up. If the sum is equal to the number itself, return true otherwise false.
-const isArmstrongNumber = digits =>
+const isArmstrongNumber = digits =>
( arr => arr.reduce( ( a, d ) => a + Math.pow( parseInt( d ), arr.length ), 0 ) == digits ? true : false )( ( digits+'' ).split( '' ) );
// isArmstrongNumber(1634) -> true
// isArmstrongNumber(371) -> true