Array multidimensional em um array unidimensional

Escreva uma função recursiva que transforma um array multidimensional em um array unidimensional.

Exemplos

flatten([[17.2, 500, "code"], "generate"]) ➞ [17.2, 500, "code", "generate"]

flatten([[[[[2, 14, "core"]]], 2, 3, 4]]) ➞ [2, 14, "core", 2, 3, 4]

flatten([["dimension"], "vertical", [["objective"]]]) ➞ ["dimension", "vertical", "objective"]

flatten([[[[[["construct"]]]]]]) ➞ ["construct"]

Observações

  • O array contém pelo menos um elemento.
  • Uma abordagem recursiva para resolver este desafio é fortemente recomendada e é mais conveniente do que a abordagem iterativa.
  • Uma versão semelhante deste desafio pode ser encontrada aqui..
  • Se você acha que recursão é divertida, uma coleção desses desafios pode ser encontrada aqui.