Merge branch 'master' into master
This commit is contained in:
11
snippets/3-digit-hexcode-to-6-digit-hexcode.md
Normal file
11
snippets/3-digit-hexcode-to-6-digit-hexcode.md
Normal file
@ -0,0 +1,11 @@
|
||||
### 3-digit hexcode to 6-digit hexcode
|
||||
|
||||
Use `Array.map()`, `split()` and `Array.join()` to join the mapped array for converting a three-digit RGB notated hexadecimal colorcode to the six-digit form.
|
||||
|
||||
```js
|
||||
const convertHex = shortHex =>
|
||||
shortHex[0] == '#' ? ('#' + shortHex.slice(1).split('').map(x => x+x).join('')) :
|
||||
('#' + shortHex.split('').map(x => x+x).join(''));
|
||||
// convertHex('#03f') -> '#0033ff'
|
||||
// convertHex('05a') -> '#0055aa'
|
||||
```
|
||||
@ -1,8 +1,8 @@
|
||||
### Array concatenation
|
||||
|
||||
Use `Array.concat()` to concatenate an array with any additional arrays and/or values, specified in `args`.
|
||||
Use Array spread operators (`...`) to concatenate an array with any additional arrays and/or values, specified in `args`.
|
||||
|
||||
```js
|
||||
const ArrayConcat = (arr, ...args) => [].concat(arr, ...args);
|
||||
// ArrayConcat([1], [1, 2, 3, [4]]) -> [1, 2, 3, [4]]
|
||||
const ArrayConcat = (arr, ...args) => [...arr,...args];
|
||||
// ArrayConcat([1], [1, 2, 3, [4]]) -> [1, 1, 2, 3, [4]]
|
||||
```
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
### Array without
|
||||
|
||||
Use `Array.filter()` to create an array excluding all given values.
|
||||
Use `Array.filter()` to create an array excluding(using `!Array.includes()`) all given values.
|
||||
|
||||
```js
|
||||
const without = (arr, ...args) => arr.filter(v => args.indexOf(v) === -1);
|
||||
// without[2, 1, 2, 3], 1, 2) -> [3]
|
||||
const without = (arr, ...args) => arr.filter(v => !args.includes(v));
|
||||
// without([2, 1, 2, 3], 1, 2) -> [3]
|
||||
// without([2, 1, 2, 3, 4, 5, 5, 5, 3, 2, 7, 7], 3, 1, 5, 2) -> [ 4, 7, 7 ]
|
||||
```
|
||||
|
||||
@ -6,7 +6,7 @@ If lengths of the argument-arrays vary, `undefined` is used where no value could
|
||||
|
||||
```js
|
||||
const zip = (...arrays) => {
|
||||
const maxLength = Math.max.apply(null, arrays.map(a => a.length));
|
||||
const maxLength = Math.max(...arrays.map(x => x.length));
|
||||
return Array.from({length: maxLength}).map((_, i) => {
|
||||
return Array.from({length: arrays.length}, (_, k) => arrays[k][i]);
|
||||
})
|
||||
|
||||
21
snippets/clean-JSON-object.md
Normal file
21
snippets/clean-JSON-object.md
Normal file
@ -0,0 +1,21 @@
|
||||
### Clean JSON object
|
||||
|
||||
Use `Object.keys()` method to loop over given json object and deleting keys that are not `include`d in given array.
|
||||
also if you give it a special key(`childIndicator`) it will search deeply inside it to apply function to inner objects too.
|
||||
|
||||
```js
|
||||
const cleanObj = (obj, keysToKeep = [], childIndicator) => {
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (key === childIndicator) {
|
||||
cleanObj(obj[key], keysToKeep, childIndicator);
|
||||
} else if (!keysToKeep.includes(key)) {
|
||||
delete obj[key];
|
||||
}
|
||||
})
|
||||
}
|
||||
/*
|
||||
testObj = {a: 1, b: 2, children: {a: 1, b: 2}}
|
||||
cleanObj(testObj, ["a"],"children")
|
||||
console.log(testObj)// { a: 1, children : { a: 1}}
|
||||
*/
|
||||
```
|
||||
14
snippets/compose-functions.md
Normal file
14
snippets/compose-functions.md
Normal file
@ -0,0 +1,14 @@
|
||||
### Compose functions
|
||||
|
||||
Use `Array.reduce()` to perform right-to-left function composition.
|
||||
The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.
|
||||
|
||||
```js
|
||||
const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
|
||||
/*
|
||||
const add5 = x => x + 5
|
||||
const multiply = (x, y) => x * y
|
||||
const multiplyAndAdd5 = compose(add5, multiply)
|
||||
multiplyAndAdd5(5, 2) -> 15
|
||||
*/
|
||||
```
|
||||
@ -5,6 +5,6 @@ You can omit `start` to use a default value of `0`.
|
||||
|
||||
```js
|
||||
const initializeArrayRange = (end, start = 0) =>
|
||||
Array.apply(null, Array(end - start)).map((v, i) => i + start);
|
||||
Array.from({ length: end - start }).map((v, i) => i + start);
|
||||
// initializeArrayRange(5) -> [0,1,2,3,4]
|
||||
```
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
### Convert JSON to date
|
||||
### JSON to date
|
||||
|
||||
Converts dates coming from ajax as JSON to readable format `dd/mm/yyyy`
|
||||
Use `Date()`, to convert dates in JSON format to readable format (`dd/mm/yyyy`).
|
||||
|
||||
```js
|
||||
const jsonToDate = arr => {
|
||||
const dt = new Date(parseInt(arr.toString().substr(6)));
|
||||
return `${ dt.getDate() }/${ dt.getMonth() + 1 }/${ dt.getFullYear() }`};
|
||||
const dt = new Date(parseInt(arr.toString().substr(6)));
|
||||
return `${ dt.getDate() }/${ dt.getMonth() + 1 }/${ dt.getFullYear() }`
|
||||
};
|
||||
// jsonToDate(/Date(1489525200000)/) -> "14/3/2017"
|
||||
```
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
### Pipe
|
||||
### Pipe functions
|
||||
|
||||
Use `Array.reduce()` to perform left-to-right function composition.
|
||||
Use `Array.reduce()` with the spread operator (`...`) to perform left-to-right function composition.
|
||||
The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.
|
||||
|
||||
```js
|
||||
19
snippets/read-file-as-array-of-lines.md
Normal file
19
snippets/read-file-as-array-of-lines.md
Normal file
@ -0,0 +1,19 @@
|
||||
### Read file as array of lines
|
||||
|
||||
Use `readFileSync` function in `fs` node package to create a `Buffer` from a file.
|
||||
convert buffer to string using `toString(encoding)` function.
|
||||
creating an array from contents of file by `split`ing file content line by line(each `\n`).
|
||||
|
||||
```js
|
||||
const fs = require('fs');
|
||||
const readFileToArray = filename => fs.readFileSync(filename).toString('UTF8').split('\n');
|
||||
/*
|
||||
contents of test.txt :
|
||||
line1
|
||||
line2
|
||||
line3
|
||||
___________________________
|
||||
let arr = readFileToArray('test.txt')
|
||||
console.log(arr) // -> ['line1', 'line2', 'line3']
|
||||
*/
|
||||
```
|
||||
@ -1,8 +0,0 @@
|
||||
### Swap values of two variables
|
||||
|
||||
Use array destructuring to swap values between two variables.
|
||||
|
||||
```js
|
||||
[varA, varB] = [varB, varA];
|
||||
// [x, y] = [y, x]
|
||||
```
|
||||
8
snippets/take-every-nth-element.md
Normal file
8
snippets/take-every-nth-element.md
Normal file
@ -0,0 +1,8 @@
|
||||
### Take every nth element
|
||||
|
||||
Use `Array.filter()` to create a new array that contains every nth element of a given array.
|
||||
|
||||
```js
|
||||
const everynth = (arr, nth) => arr.filter((e, i) => i % nth === 0);
|
||||
// everynth([1,2,3,4,5,6], 2) -> [ 1, 3, 5 ]
|
||||
```
|
||||
@ -1,4 +1,4 @@
|
||||
### Write a JSON to a file
|
||||
### Write JSON to file
|
||||
|
||||
Use `fs.writeFile()`, template literals and `JSON.stringify()` to write a `json` object to a `.json` file.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user