Flatten a mixed type array
by Steven Senkus
JavaScript
var arr = [1, {
a: 2,
b: []
}, '3', [
[4, 5], 6], 7, 8, [9], null, true, false];
function flatten(arr) {
var flattenedArray = [];
function iterate(item) {
switch (typeof item) {
case 'number':
case 'string':
case 'boolean':
flattenedArray.push(item);
break;
case 'object':
Array.isArray(item) ? Array.prototype.forEach.call(item, iterate) : flattenedArray.push(item);
break;
}
return flattenedArray;
}
return iterate(arr)
}
console.log(flatten(arr));