Advertisement
728x90
Flattening bi-dimensional arrays is trivial with Spread operator.
javascript
1const biDimensionalArr = [11, [22, 33], [44, 55], [66, 77], 88, 99];
2
3const flattenArr = [].concat(...biDimensionalArr); // [11, 22, 33, 44, 55, 66, 77, 88, 99]But you can make it work with multi-dimensional arrays by recursive calls,
javascript
1function flattenMultiArray(arr) {
2 const flattened = [].concat(...arr);
3 return flattened.some((item) => Array.isArray(item))
4 ? flattenMultiArray(flattened)
5 : flattened;
6 }
7
8const multiDimensionalArr = [
9 11,
10 [22, 33],
11 [44, [55, 66, [77, [88]], 99]],
12];
13
14const flatArr = flattenMultiArray(multiDimensionalArr); // [11, 22, 33, 44, 55, 66, 77, 88, 99]Also you can use the flat method of Array.
javascript
1const arr = [1, [2, 3], 4, 5, [6, 7]];
2
3const fllattenArr = arr.flat(); // [1, 2, 3, 4, 5, 6, 7]
4
5// And for multiDimensional arrays
6
7const multiDimensionalArr = [
8 11,
9 [22, 33],
10 [44, [55, 66, [77, [88]], 99]],
11];
12
13const oneStepFlat = multiDimensionalArr.flat(1); // [11, 22, 33, 44, [55, 66, [77, [88]], 99]]
14
15const towStep = multiDimensionalArr.flat(2); // [11, 22, 33, 44, 55, 66, [77, [88]], 99]
16
17const fullyFlatArray = multiDimensionalArr.flat(Infinity); // [11, 22, 33, 44, 55, 66, 77, 88, 99]Advertisement
Responsive Ad
🎯 Practice NowRelated Challenge
JavaScript Coding Exercise 37
Test your knowledge with this interactive coding challenge.
Start CodingAdvertisement
728x90
379of476