Recursive if(Array.isArray(elem) && n > 0) {
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 result = [];
    for(let i = 0; i < arr.length; i++) {
        const elem = arr[i];
        if(Array.isArray(elem) && n > 0) {
            result.push(...flat(elem, n-1))
        } else {
            result.push(elem)
        }
    }
    return result;
};
```
['JavaScript']