JS Coding Questions Logo
JS Coding Questions
#379💼 Interview💻 Code

How do you flattening multi dimensional arrays

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 Coding

Advertisement

728x90
379of476