In this article, we will explore the JavaScript flat() method and its importance.
We will also show you some easy methods to efficiently flatten arrays.
Sometimes, we encounter nested arrays, where one array contains another array within it.
By that, our goal is to convert these complex, nested arrays into simple, single-level array. So, get ready to explore the world of JavaScript flat array!
What is JavaScript Array flat() method?
The flat() method in JavaScript is a built-in feature that helps you turn a complex array into a simpler, one-level array.
It combines all the elements from nested arrays and puts them into a new array.
By default, it only flattens one level deep, but you can choose how deep you want it to go by giving it a number as an argument.
Syntax:
arr.flat([depth])
Parameters
depth (optional)
Depth refers to the level of nested arrays that will be flattened. It determines how many layers of nested arrays will be combined into a single, flat array.
Return value
The return value of the flat() method is a new array with fewer levels of nesting compared to the original array. It removes nesting based on the specified depth level, giving you a simpler, flattened array.
How to use the flat() method to flatten Arrays in JavaScript?
The flat() method is a built-in array method in JavaScript that flattens an array of objects and returns a flattened array of object.
For instance, if you have an array like this: const sampleArr = [1, 2, [3, [4, 5, 6], 7], 8];, and you use sampleArr.flat(2);, it will give you a new flat array: [1, 2, 3, 4, 5, 6, 7, 8].
Here’s a complete code example that demonstrates how to use the flat() method to flatten arrays in JavaScript:
// Define a nested array
const sampleArr = [1, 2, [3, [4, 5, 6], 7], 8];
// Flatten the array using the flat() method
const flattenedArray = sampleArr.flat(2);
// Log the flattened array to the console
console.log(flattenedArray);
Output:
[
1, 2, 3, 4,
5, 6, 7, 8
]
Here’s another example code of using flat() method on sparse arrays:
const samplearr = [10, 20, , 40, 50, 60, , 80];
console.log(samplearr.flat());
Output:
[ 10, 20, 40, 50, 60, 80 ]
What does .flat do in JavaScript?
The flat() method is an inbuilt array method in JavaScript that flattens a given array into a newly created one-dimensional array.
It concatenates all the elements of the given multidimensional array, and flats up to the specified depth.
The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
As we mentioned earlier, the default depth is 1, but you can specify a different depth by passing an argument to the flat() method.
How to make array flat in JavaScript?
You can use the flat() method or array.prototype.flat() method to flatten an array with the nested arrays in JavaScript. This method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
Here’s an example:
const sampleArr = [10, 20, [30, [40, 50, 60], 70], 80];
const flattenedArr = sampleArr.flat(2);
console.log(flattenedArr);
Output:
[
10, 20, 30, 40,
50, 60, 70, 80
]
In this example, we have an array sampleArr with nested sub-arrays. We call the flat() method on sampleArr with an argument of 2, which specifies that we want to flatten the array up to a depth of 2 levels.
The result is a new flattened array flattenedArr that contains all the elements from the original array and its sub-arrays.
What is the alternative to flat in JavaScript?
There are several alternatives to the flat method in JavaScript. One way to flatten an array without using the flat() method is to use the reduce and concat methods.
Here’s an example:
const arr = [10, 20, [30, 40]];
const flattened = arr.reduce((acc, val) => acc.concat(val), []);
console.log(flattened);
Output:
[ 10, 20, 30, 40 ]
Another way is to use the spread syntax, here’s an example:
const arr = [11, 22, [33, 44]];
const flattened = [].concat(...arr);
console.log(flattened);
Output:
[ 11, 22, 33, 44 ]
Apart from that, you can also use the reduce method with the spread syntax, here’s an example:
const arr = [111, 222, [333, 444], 555];
function flatten(array) {
return array.reduce(
(accumulator, item) => {
if (Array.isArray(item)) {
return [...accumulator, ...item];
}
return [...accumulator, item];
},
[]
);
}
const flattened = flatten(arr);
console.log(flattened);
Output:
[ 111, 222, 333, 444, 555 ]
The examples above are just a few examples of how you can flatten an array in JavaScript without using the flat method.
What is the difference between flat() and flatMap()?
In JavaScript, you have two handy array methods called flat() and flatMap() that help you flatten nested arrays.
The primary key distinction between them is that flat() simply flattens a nested array, getting rid of the nested structure.
On the other hand, the JavaScript flat map or flatMap() not only flattens the array but also applies a mapping function to each element before combining the results into a new array.
It does both tasks in one go, making it quite useful for certain operations.
Here’s an example of using the flatMap() method in JavaScript:
let arr = [10, 20, 30, 40, 50];
const resultingArray = arr.flatMap((a) => [a ** 2]);
console.log(resultingArray);
Output
[ 100, 400, 900, 1600, 2500 ]
Conclusion
In conclusion, this article explores the JavaScript flat() method, which is used to simplify complex arrays by flattening them into a single-level array.
Aside from that, this article also presents alternative ways to flatten arrays, such as using the reduce and concat methods or the spread syntax.
Additionally, the distinction between flat() and flatMap() is explained, with the latter allowing both flattening and mapping of elements simultaneously.
We are hoping that this article provides you with enough information that help you understand the JavaScript flat array.
You can also check out the following article:
Thank you for reading itsourcecoders 😊.