JavaScript simple O(n) solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity: O(n)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(n)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```javascript []\n/**\n * @param {Array} arr\n * @param {number} depth\n * @return {Array}\n */\nvar flat = function (arr, n) {\n    const inner = (arr, depth) => {\n        return arr.reduce((acc, el) => {\n          if (Array.isArray(el) && depth < n) {\n            acc.push(...inner(el, depth + 1));\n          } else {\n            acc.push(el);\n          }\n          return acc;\n          },[]);\n    }\n    return inner(arr, 0);\n};\n```
['JavaScript']