Recupera todos arrays e retorna somente um com o valores.
No primeiro método há uma recursividade.
No segundo método, uma conversão para string, split e finalmente converte para um array final de números
Acho que pode ser útil também.
| "use strict"; | |
| const arr = [ | |
| [0, 1], | |
| [2, 3], | |
| [4, 5], | |
| [6, 7, [8, 9, [10, 11, [12, 13], 14, 15, 16, [17, [18, [19, [20]]]]]]] | |
| ]; | |
| // Metodo 1 | |
| const flatten1 = list => list.reduce((pre, pos) => pre.concat(Array.isArray(pos) | |
| ? flatten1(pos) | |
| : pos), []); | |
| // Metodo 2 | |
| const flatten2 = list => list.toString().split(",").map(Number); | |
| console.log(flatten1(arr)); | |
| console.log(flatten2(arr)); | |
https://gist.github.com/lubien/4b6bf2fc593a473eaba5f72290b9cd59