flat it out!
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, n) {

    const helper = (arr,currentDepth) => {
        if(currentDepth === 0) {
            return arr
        }

        let result = []

        for(let i = 0; i < arr.length; i++) {
            let element = arr[i];

            if(Array.isArray(element) && currentDepth > 0) {
                let flattenedSubArray = helper(element,currentDepth -1);
                result.push(...flattenedSubArray);
            }else {
                result.push(element);
            }
        }

        return result;      
    };

    return helper(arr,n)
};
```
['JavaScript']