Aplanar el arreglo anidado

Se te da un arreglo anidado, como este:

[1, [2, 3], [4, [5, 6]], [7, [8, [9, 0]]]]

Devuelve un nuevo arreglo unidimensional que contenga todos los valores que no sean arreglos, en el mismo orden de izquierda a derecha. Los arreglos pueden estar anidados a cualquier profundidad.

Ejemplos

flatten([[6, 7], [4, 5]]); // ➞ [6, 7, 4, 5]

flatten([[[[[["cat"]]]]]]); // ➞ ["cat"]

flatten([[3, [5, 6]], [9, 3]]); // ➞ [3, 5, 6, 9, 3]

flatten([1, [2, 3], [4, [5, 6]], [7, [8, [9, 0]]]]); // ➞ [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

Notas

  • Conserva el orden de todos los valores.