Bonfire: Steamroller

by Luis Valle

JavaScript

function steamrollerX(arr) {
  var finArr = [];
  
  for (var i=0; i < arr.length; i++) {
  	var xNum = getNumber(arr[i]);
  	if (!isNaN(xNum)) {
    	finArr.push(xNum);
    }
  }
  
  return finArr;
}

function getNumber(arrx) {
	var finNum;
  
  if (Array.isArray(arrx)) {
    for (var i=0; i < arrx.length; i++) {
      if (Array.isArray(arrx[i])) {
        finNum = getNumber(arrx[i]);
      } else {
        if (!isNaN(arrx[i])) {
          finNum = arrx[i];
        }
      }
    }
  } else {
  	if (!isNaN(arrx)) {
      finNum = arrx;
    }
  }
  
  return finNum;
}

function steamroller2(arr) {
	var finArr = [];
  
	while (arr.length > 0) {
  	if (Array.isArray(arr[0])) {
    	if (arr[0].length > 1) {
      	
      } else {
      	
      }
    } else {
    	if (!isNaN(arr[0])) {
        finArr.push(arr[0]);
        arr.shift();
      }
    }
  }
}

function steamroller3(arr) {
	var finFlat = arr.reduce(function(a, b) {
    return a.concat(b);
  }, []);
  
  return finFlat;
}

function steamroller4(arr) {
	var alphaNumeric = [].concat(arr);
  var finArr = [];
  
  for (var i=0; i < alphaNumeric.length; i++) {
  	if (alphaNumeric[i] != '') {
    	finArr.push(alphaNumeric[i]);
    }
  }
  
  var xT = alphaNumeric.toString().replace(/\[/g, '').replace(/\]/g, '');
  var finArrT = xT.split(',');
  var otherArr = [];
  
  for (var i=0; i < finArrT.length; i++) {
  	if (finArrT[i]) {
    	if (isNaN(finArrT[i])) {
      	if (finArrT[i] == 'object Object') {
        	otherArr.push({});
        } else {
      		otherArr.push(finArrT[i]);
        }
      } else {
      	otherArr.push(parseInt(finArrT[i]));
      }    	
    }
  }
  
  return otherArr;
}

function steamroller(arr) {
	return arr.reduce(function (flat, toFlatten) {
    return flat.concat(Array.isArray(toFlatten) ? steamroller(toFlatten) : toFlatten);
  }, []);
  
	//return JSON.stringify(xArr);
}

function popLast(itmL) {
	var xW;
	for (var i=0; i < itmL.length; i++) {
  	if (Array.isArray(itmL[i])) {
   ...