I'm trying to write a recursive function that takes an array with nested arrays and puts all the values into a single array. Right now it works sometimes, but sometimes it doesn't.
function steamrollArray(arr) {
  var newArr = [];
  
  var func = function(array){
      for(i=0; i<array.length; i++){
        if(Array.isArray(array[i])){
          func(array[i]);
        }
        else {
          newArr.push(array[i]);
        }
      }
  };
  
  func(arr);
  return newArr;
}When I run steamrollArray([1, [2], [3, [[4]]]]) it works, but if I run steamrollArray([[1], [[2]], [3, [[4]]]]); it doesn't include the 2 for some reason, and if I run steamrollArray([1, [], [3, [[4]]]]) my browser crashes. Thanks for any insight you can give!
 
     
    