This function will flatten an Array only two levels deep.
function arrFlattener(arr){
var newarr = [];
for(var i = 0; i < arr.length; i++){
var target = arr[i];
if(Array.isArray(target)){
for(var j = 0; j < target.length; j++){
if(Array.isArray(target[j])){
for(var k = 0; k < target[j].length; k++){
newarr.push(target[j][k]);
}
} else {
newarr.push(target[j]);
}
}
} else {
newarr.push(arr[i]);
}
}
return newarr;
}
arrFlattener([1, 2, 3, [4, 5, [6],[7],[8]]]); // returns [1, 2, 3, 4, 5, 6, 7, 8];
Obviously a recursive function is what I need. In pseudo code I imagine a while loop which will run until it can't find a nested array in the current Array.
Any help will be appreciated!