Array Flattener

Takes a multidimensional array and flattens it into a flat array or string with optional delimiter

by chadarsenault

HTML

<div id="result"></div>

JavaScript

var flattened = [];
var flatten = function (arr,outStr,delimiter){
  for(var i=0; i<arr.length; i++) {
      if(arr[i] instanceof Array) {
          flatten(arr[i],outStr,delimiter);
      } else {
          if(outStr===true) {
              if(flattened.length <= 0) {
                  flattened += arr[i];
              } else {
                  flattened += delimiter + arr[i];
              }
          } else {
              flattened.push(arr[i]);
          }
      }
  }
    
  return flattened;
    
}

var input = ['dog','cat','mouse',['banana','orange','apple',[7,4,['hello'],9]]];

document.getElementById('result').innerHTML = flatten(input,true,'|');