20 lines
446 B
Markdown
20 lines
446 B
Markdown
---
|
|
title: deepFlatten
|
|
tags: array,recursion,intermediate
|
|
---
|
|
|
|
Deep flattens an array.
|
|
|
|
- Use recursion.
|
|
- Use `Array.prototype.concat()` with an empty array (`[]`) and the spread operator (`...`) to flatten an array.
|
|
- Recursively flatten each element that is an array.
|
|
|
|
```js
|
|
const deepFlatten = arr =>
|
|
[].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
|
|
```
|
|
|
|
```js
|
|
deepFlatten([1, [2], [[3], 4], 5]); // [1, 2, 3, 4, 5]
|
|
```
|