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()