Skip to content
Flatten a nested array

Flatten a nested array

Create a function called flatten that produces a new array by merging all nested arrays into a single, flat array.

🔗 Flatten 🟡 Medium🧩 Pattern – JavaScript Essentials

Related: Flatten Deeply Nested Array – 2625 | Matrixread

Recursive Code

/**
 * @param {Array<*|Array>} value
 * @return {Array}
 */
export default function flatten(value) {
  const result = [];
  value.forEach((item) => {
    if (Array.isArray(item)) {
      result.push(...flatten(item));
    } else {
      result.push(item);
    }
  });
  return result;
}Code language: JavaScript (javascript)

Using Reduce

/**
 * @param {Array<*|Array>} value
 * @return {Array}
 */
export default function flatten(value) {
  return value.reduce(
    (acc, current) =>
      acc.concat(Array.isArray(current) ? flatten(current) : current),
    [],
  );
}Code language: JavaScript (javascript)
Back to Top