Flattens any array dimension to one dimensional array using ES2015 reduce function and recursion
A Pen by Vlad Bezden on CodePen.
Flattens any array dimension to one dimensional array using ES2015 reduce function and recursion
A Pen by Vlad Bezden on CodePen.
'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) |