JavaScript Array flat()

The flat() method creates a new array by flattening a nested array up to the specified depth.

Example

// 3 nested arrays 
let numbers = [1, 2, [3, 4, [5, 6, [7, 8]]]];

// reducing nesting by flattening the array to depth 2 let flattenArray = numbers.flat(2);
// new flatten array console.log(flattenArray); // Output: // [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]

flat() Syntax

The syntax of the flat() method is:

arr.flat(depth)

Here, arr is an array.


flat() Parameters

The flat() method takes a single parameter:

  • depth - Integer specifying how deep a nested array should be flattened. Its default value is 1.

flat() Return Value

  • Returns a flatted array with the sub-array elements concatenated into it.

Notes: The flat() method:

  • does not change the original array.
  • removes empty slots in arrays.

Example 1: Using flat() Method

// 3 nested array 
let numbers = [1, 2, [3, 4, [5, 6, [7, 8]]]];

// reducing nesting by flattening the array to depth 2 let flattenArray = numbers.flat(2);
// new flatten array console.log(flattenArray);

Output

[ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]

In the above example, we have used the flat() method to flat the nested array numbers to depth 2.

numbers.flat(2) reduces the nesting of the numbers array and returns a flatted array with only one nesting i.e. [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]


Example 2: flat() Without Default Depth Argument

// nested array
let array1 = [1, [2, 3, 4], 5];

// without passing any depth argument in flat() let flattenArray = array1.flat();
console.log(flattenArray);

Output

[ 1, 2, 3, 4, 5 ]

Here, we have not passed any depth argument in the flat() method.

The default depth argument is 1, so array1.flat() flattens array1 to depth 1.


Example 3: flat() to Remove Holes in Array

We can remove holes in an array that has empty slots using the flat() method. For example:

// array with empty slots
let array_with_holes = [1, , 3];

// removes holes in the array let flattedArray = array_with_holes.flat();
console.log(flattedArray); // [ 1, 3 ]

Output

[ 1, 3 ]

Recommended Reading: JavaScript Array flatMap()