Q24 [Coding]: Write a function to recursively flatten a deeply nested array.

function flattenArray(arr) {
  return arr.reduce((acc, val) => 
    Array.isArray(val) 
      ? acc.concat(flattenArray(val)) 
      : acc.concat(val), 
  []);
}
// Example: flattenArray([1, [2, [3, 4]], 5]) -> [1, 2, 3, 4, 5]
Key Takeaways
  • Uses recursion and Array.isArray() to unravel nested sub-arrays.
  • Native equivalent: arr.flat(Infinity).
Knowledge Check

What built-in Array prototype method flattens nested arrays to any depth directly?