How to flatten a nested array in JavaScript
Flattening nested arrays is crucial when working with hierarchical data structures, processing API responses with nested arrays, or simplifying complex data for easier manipulation in JavaScript applications.
With over 25 years of experience in software development and as the creator of CoreUI, I’ve implemented array flattening in components like tree navigation, nested menu systems, and data aggregation features where multi-level arrays need to be converted into flat structures.
From my extensive expertise, the most modern and efficient solution is using the ES2019 flat()
method, which handles nested arrays elegantly.
This approach is clean, intuitive, and provides excellent control over the flattening depth.
Use the flat()
method to convert nested arrays into a single-level array.
const nested = [1, [2, 3], [4, [5, 6]]]
const flattened = nested.flat()
// Result: [1, 2, 3, 4, [5, 6]]
The flat()
method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth. By default, it flattens one level deep. In this example, nested.flat()
converts [1, [2, 3], [4, [5, 6]]]
to [1, 2, 3, 4, [5, 6]]
, flattening the first level but leaving the deeper nested array [5, 6]
intact. To flatten all levels completely, use nested.flat(Infinity)
, or specify a number for exact depth control like nested.flat(2)
.
Best Practice Note:
This is the same approach we use in CoreUI components for processing nested navigation data and flattening hierarchical configurations.
For older browser support, use alternatives like [].concat(...array)
for one level or recursive solutions for deeper nesting. The flat()
method is supported in all modern browsers and provides the cleanest syntax for array flattening operations.