2625. Flatten Deeply Nested Array
IntuitionApproachComplexity
Time complexity:

Space complexity:
Code
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

# Approach
<!-- Describe your approach to solving the problem. -->

# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```javascript []
/**
 * @param {Array} arr
 * @param {number} depth
 * @return {Array}
 */
var flat = function (arr, depthLimit) {
    const flattened = [];
    const recurse = (current, currentDepth) => {
        if (!Array.isArray(current) || currentDepth === depthLimit) {
            flattened.push(current);
        } else {
            for (const element of current) {
                recurse(element, currentDepth + 1);
            }
        }
    };
    for (const item of arr) {
        recurse(item, 0);
    }
    return flattened;
};

```
['JavaScript']