Here you can find the source of flatten()
var slice = Array.prototype.slice; Array.prototype.flatten = function () { var obj, result = []; for (var i = 0, l = this.length; i < l; ++i ) { obj = this[ i ];/*from w w w . j a va2s .com*/ if ( Array.isArray( obj ) ) { result = result.concat( obj.flatten() ); } else { result[ result.length ] = obj; } } return result; };
Array.prototype.flatten = function () { function flattenArrayOfArrays(array, result) { if (!result) { result = []; for (var i = 0; i < array.length; i++) { if (Array.isArray(array[i])) { flattenArrayOfArrays(array[i], result); } else { ...
Array.prototype.flatten = function() { return this.reduce(function(res, el) { if(el.constructor == Array) { el.forEach(function(sub_el) { res.push(sub_el); }) } else { res.push(el); return res; }, []);
Array.prototype.flatten = function () { var toReturn = []; for (var i = 0, len = this.length; i < len; i++) { if (this[i] instanceof Array) { toReturn = toReturn.concat(this[i].flatten()); } else { toReturn.push(this[i]); return toReturn; };
Array.prototype.flatten = function() { return this.reduce(function(a,b) { return a.concat(b) }, [])
Array.prototype.flatten = function(){ var flattenArray = []; for (var el in this) { var currElement = this[el]; if (Object.prototype.toString.call(currElement) === '[object Array]' ) { for (var i in currElement) { flattenArray.push(currElement[i]); } else { ...
Array.prototype.flatten = Array.prototype.flatten || function() { 'use strict'; var that = this; for (var i = 0; i < that.length; i += 1) { if (Array.isArray(that[i])) { that = that.concat.apply([], that); i -= 1; return that; }; Array.prototype.flatten1 = Array.prototype.flatten1 || function() { 'use strict'; var res = []; (function flatten(arr) { for (var i = 0; i < arr.length; i += 1) { if (Array.isArray(arr[i])) { flatten(arr[i]); } else { res.push(arr[i]); }(this)); return res; }; Array.prototype.flatten2 = Array.prototype.flatten2 || function() { 'use strict'; for (var i = 0; i < this.length; i += 1) { if (Array.isArray(this[i])) { this.splice.apply(this, [i, 1].concat(this[i].flatten())); return this; }; var a = [1, 2, [3, 4, [5, 6]]]; console.log(a.flatten()); console.log(a); console.log(a.flatten1()); console.log(a); console.log(a.flatten2()); console.log(a);
var arrays = [[1, 2, 3], [4, 5], [6]]; console.log(arrays.reduce(function(a, b){ return a.concat(b); })); Array.prototype.flatten = function(){ return this.reduce(function(a, b){ if(!Array.prototype.isPrototypeOf(a)) a = [a]; else ...
Array.prototype.flatten = function(array) { return this.reduce((prev, next) => prev.concat(next), []); };
Array.prototype.flatten = function (func) { var result = []; forEach(this, function (element) { forEach(func(element), function (child) { result.push(child); }); }); return result;