Skip to content

Instantly share code, notes, and snippets.

@juanpasolano
Created October 5, 2018 15:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juanpasolano/6a2a4d5e9fa3dc56d7dcbb77d37cf99f to your computer and use it in GitHub Desktop.
Save juanpasolano/6a2a4d5e9fa3dc56d7dcbb77d37cf99f to your computer and use it in GitHub Desktop.
Flatten array
const assert = require("assert");
export const flattenArray = arr =>
arr.reduce((accumulator, current)=>(
accumulator.concat(
Array.isArray(current) ? flattenArray(current) : current
)
), [])
assert.deepEqual(flattenArray([1, 2, [3, 4, 5], 6, 7, [8]]), [1, 2, 3, 4, 5, 6, 7, 8]);
assert.deepEqual(flattenArray([1, 2, [3, [4, 5]], 6, 7, [8]]), [1, 2, 3, 4, 5, 6, 7, 8]);
assert.deepEqual(flattenArray([1, 2, [3, [4, 5]], 6, 7, [8, [9, [10]]]]), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
assert.deepEqual(flattenArray([[1], [[[[2]]]], [3, [4, [[5]]]], [6], 7, [8, [9, [10]]]]), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment