Test case details

Preparation Code

function flattenArray(arr) { if (Array.isArray(arr)) { return arr.reduce(function(done,curr){ return done.concat(flattenArray(curr)); }, []); } else { return arr; } } var flattenReduceArray = (result, item) => Array.isArray(item) ? item.reduce(flattenReduceArray, result) : [...result, item] function flattenReduceArrayES5 (result, item) { if (Array.isArray(item)) { return item.reduce(flattenReduceArrayES5, result) } else { result.push(item); return result; } } var flattenConcat = function(a, level) { for (var i = 0, a = a.slice(); a.some(Array.isArray) && (i != level); i++) a = Array.prototype.concat.apply([], a); return a; } var arrayTest = [[[[2]]],[[1]],[3]];

Test cases

Test #1

arrayTest.reduce(flattenReduceArray, [])

Test #2

flattenArray(arrayTest)

Test #3

arrayTest.reduce(flattenReduceArrayES5, [])

Test #4

flattenConcat(arrayTest)