Преобразовать многомерный массив в одномерный

Реализуй функцию flatten(arr), которая принимает аргументом массив arr. Элементами массива arr могут быть как простые типы данных (числа, строки), так и массивы. Функция должна вернуть массив, состоящий из всех элементов вложенных массивов. Глубина вложенности массивов может быть любая. Примеры:

flatten([1, 2, 3, [1, 2, 3]])
flatten(['mama', ['mila'], [], [['ramu']]])