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])) {
...