Here you can find the source of flatten()
Array.prototype.flatten = function() { var resultArray = []; function getValues(array) { var i;/* ww w. j av a 2 s . co m*/ for (i = 0; i < array.length; i += 1) { var value = array[i]; if (Array.isArray(value)) { getValues(value); } else { resultArray.push(value); } } } getValues(this); return resultArray; }; console.log("Problem 3. Array Flattening"); var array = [1, 2, 3, 4]; console.log(array.flatten()); var array = [1, 2, [3, 4], [5, 6]]; console.log(array.flatten()); console.log(array); // Not changed var array = [0, ["string", "values"], 5.5, [[1, 2, true], [3, 4, false]], 10]; console.log(array.flatten()); console.log("\n\n");
Array.prototype.flatten = function() { var resultArray = []; function getValues(array) { var i; for (i = 0; i < array.length; i += 1) { var value = array[i]; if (Array.isArray(value)) { getValues(value); } else { ...
Array.prototype.flatten = function () { var arrayResult = []; flatten(this); function flatten(array) { var length = array.length; for (var i = 0; i < length; i++) { var element = array[i]; if (Array.isArray(element)) { flatten(element); ...
Array.prototype.flatten = function() { var flatten = function(items) { var flattened = []; items.forEach(function(item) { if (typeof item === "object") { flatten(item).forEach(function (i) { flattened.push(i); }); } else { ...
Array.prototype.flatten = function(){ var flat_array = []; for(var i = 0; i < this.length; i++){ if (this[i].constructor == Array){ this[i] = this[i].flatten(); flat_array = flat_array.concat(this[i]); else { flat_array.push(this[i]); } return flat_array;
Array.prototype.flatten = function() { var results = []; for (var i = 0, len = this.length; i < len; i++) { if (typeof this[i] == "object" && this[i].constructor === Array) { results = results.concat(this[i].flatten()); } else { results.push(this[i]); return results; }; Array.prototype.flatten = function() { var results = []; for (var i = 0, len = this.length; i < len; i++) { results = results.concat(Object.isArray(this[i]) ? this[i].flatten() : [this[i]]); return results; }; Array.prototype.flatten = function() { return this.inject([], function(array, value) { return array.concat(Object.isArray(value) ? value.flatten() : [value]); }); };
Array.prototype.flatten = function() { var toString = Object.prototype.toString; var arrayTypeStr = '[object Array]'; var result = []; var nodes = this.slice(); var node; if (!this.length) { return result; node = nodes.pop(); do { if (toString.call(node) === arrayTypeStr) { nodes.push.apply(nodes, node); } else { result.push(node); } while (nodes.length && (node = nodes.pop()) !== undefined); result.reverse(); return result;
Array.prototype.flatten = function() { var originalArray = this, newArray = [], i = 0, j = 0, element, temp; for (i = 0; i < originalArray.length; i+=1) { element = originalArray[i]; ...
Array.prototype.flatten = function() { var originalArray = this; var newArray = []; var i = 0; var j = 0; var element; var temp; for (i = 0; i < originalArray.length; i+=1) { element = originalArray[i]; ...
Array.prototype.flatten = function() { var resultArray = []; innerFlatten(this); function innerFlatten(arr) { arr.forEach(function(el) { if(Array.isArray(el)) { innerFlatten(el); } else { resultArray.push(el); ...