Travis build: 1168

This commit is contained in:
30secondsofcode
2018-01-11 08:59:40 +00:00
parent 46fa326a27
commit 47dbf1b269
3 changed files with 20 additions and 6 deletions

View File

@ -768,19 +768,26 @@ filterNonUnique([1, 2, 2, 3, 4, 4, 5]); // [1,3,5]
### flatten
Flattens an array.
Flattens an array up to the specified depth.
Use a new array, `Array.concat()` and the spread operator (`...`) to cause a shallow denesting of any contained arrays.
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 argument, `depth` to flatten only to a depth of `1` (single flatten).
```js
const flatten = arr => [].concat(...arr);
const flatten = (arr, depth = 1) =>
depth != 1
? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
: arr.reduce((a, v) => a.concat(v), []);
```
<details>
<summary>Examples</summary>
```js
flatten([1, [2], 3, 4]); // [1,2,3,4]
flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]
```
</details>
@ -5201,6 +5208,7 @@ const httpPost = (url, callback, data = null, err = console.error) => {
const newPost = {
"userId": 1,
"id": 1337,