InterviewHubPRO
Section Overview
Q383

Question 383 of 521

Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

74%
JavaScript Internals (521 Qs)•Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

How do you flattening multi dimensional arrays

Flattening bi-dimensional arrays is trivial with Spread operator.

javascript
  const biDimensionalArr = [11, [22, 33], [44, 55], [66, 77], 88, 99];
  const 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
  function flattenMultiArray(arr) {
    const flattened = [].concat(...arr);
    return flattened.some((item) => Array.isArray(item))
      ? flattenMultiArray(flattened)
      : flattened;
  }
  const multiDimensionalArr = [
    11,
    [22, 33],
    [44, [55, 66, [77, [88]], 99]],
  ];
  const flatArr = flattenMultiArray(multiDimensionalArr); // [11, 22, 33, 44, 55, 66, 77, 88, 99]

Also you can use the flat method of Array.

javascript
  const arr = [1, [2, 3], 4, 5, [6, 7]];
  const fllattenArr = arr.flat(); // [1, 2, 3, 4, 5, 6, 7]

  // And for multiDimensional arrays
  const multiDimensionalArr = [
    11,
    [22, 33],
    [44, [55, 66, [77, [88]], 99]],
  ];
  const oneStepFlat = multiDimensionalArr.flat(1); // [11, 22, 33, 44, [55, 66, [77, [88]], 99]]
  const towStep = multiDimensionalArr.flat(2); // [11, 22, 33, 44, 55, 66, [77, [88]], 99]
  const fullyFlatArray = multiDimensionalArr.flat(Infinity); // [11, 22, 33, 44, 55, 66, 77, 88, 99]