Flat Array
const a = [[2, 3, 5], [6, 7], ['a', 'b']]
const b = [7,8,9]
const concatFn = (result, array) => {
const tempFlat = result.concat(array)
let flatIndex = 0
const shouldToFlat = tempFlat.some((elm, index) => {
flatIndex = index
return Array.isArray(elm)
})
if(shouldToFlat){
return flatArray(tempFlat[flatIndex], tempFlat.slice(flatIndex+1))
}else{
return tempFlat
}
}
const flatArray = (complex, base) => {
return complex.reduce((result, a) => {
return concatFn(result, a)
}, base)
}
const final = concatFn(a, b)
console.log(final)