Skip to content

Instantly share code, notes, and snippets.

@vlad-bezden
Created March 25, 2017 12:33
Show Gist options
  • Save vlad-bezden/cc5eb17d4fd722b8100eda82385f739c to your computer and use it in GitHub Desktop.
Save vlad-bezden/cc5eb17d4fd722b8100eda82385f739c to your computer and use it in GitHub Desktop.
flattenArray

flattenArray

Flattens any array dimension to one dimensional array using ES2015 reduce function and recursion

A Pen by Vlad Bezden on CodePen.

License.

'option strict'
/**
* Flatten an array of arbitrarily nested arrays into a flat array
*
* @params {!number[[[]]]} data: array of arbitrarily nested arrays
* @returns {!number[]}: one dimensinal array
*/
function flattenArray(data) {
return data.reduce((prev, curr) =>
prev.concat(Array.isArray(curr) ?
flattenArray(curr) :
curr), []
)
}
// Examples
const log = (data, result) => console.log('result for: ', data, ' => ', result)
let data = [[1, 2, [3]], 4]
let result = flattenArray(data)
log(data, result)
data = [1]
result = flattenArray(data)
log(data, result)
data = [[[1]]]
result = flattenArray(data)
log(data, result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment