steamrollArray
flatten without .flat
by trentHarlem
JavaScript
function steamrollArray(arr) {
return arr.reduce((acc, cur) => acc.concat(Array.isArray(cur) ? steamrollArray(cur) : cur), [])
}
/* function steamrollArray(arr) {
let flat = [];
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] instanceof Array) {
flat.push.apply(flat, steamrollArray.apply(this, arguments[i]));
} else {
flat.push(arguments[i]);
}
}
console.log(flat)
return flat;
} */
/* function steamrollArray(arr) {
console.log(arr)
let temp = []
//let temp = Array.from(...arguments)
//console.log('temp',temp)
const out = arr.forEach(el=> {
console.log(typeof(el))
temp.push(el)
console.log(temp)
})
return out
// return arr.map(el => el.forEach(el=> temp.push(el)))
} */
console.log(steamrollArray([1, [2], [3, [[4]]]])) //should return [1, 2, 3, 4].