Flatten an array
by dhchow
JavaScript
// [a, b, c, [d, e, f]]
function flatten(arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
result = result.concat(arr[i].flatten());
} else {
result.push(arr[i]);
}
}
return result;
}
Array.prototype.flatterize = function(){
var result = [];
for (var i = 0; i < this.length; i++) {
if (this[i] instanceof Array) {
result = result.concat(this[i].flatterize());
} else {
result.push(this[i]);
}
}
return result;
}
console.log( flatten([1, 2, 3]) );
console.log( flatten([1, 2, 3, [4, 5, 6]]) );
console.log( flatten([1, 2, 3, [4, 5, 6, [7, 8, 9]]]) );
console.log( flatten([[1, [2, [3, [4, [5, [6, [7, [8, [9, [0]]]]]]]]]]]) );
console.log([[1, [2, [3, [4, [5, [6, [7, [8, [9, [0]]]]]]]]]]].flatterize());