Fully renamed and updated everything, tagged, built

This commit is contained in:
Angelos Chalaris
2017-12-17 17:55:51 +02:00
parent 8774cbb4c6
commit c8b9c4a563
108 changed files with 1317 additions and 914 deletions

15
snippets/flattenDepth.md Normal file
View File

@ -0,0 +1,15 @@
### flattenDepth
Flattens an array up to the specified depth.
Use recursion, decrementing `depth` by 1 for each level of depth.
Use `Array.reduce()` and `Array.concat()` to merge elements or arrays.
Base case, for `depth` equal to `1` stops recursion.
Omit the second element, `depth` to flatten only to a depth of `1` (single flatten).
```js
const flattenDepth = (arr, depth = 1) =>
depth != 1 ? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flattenDepth(v, depth - 1) : v), [])
: arr.reduce((a, v) => a.concat(v), []);
// flattenDepth([1,[2],[[[3],4],5]], 2) -> [1,2,[3],4,5]
```