Nodejs Array Flatten flatten()

Here you can find the source of flatten()

Method Source Code

Array.prototype.flatten = function() {
    var originalArray = this;
    var newArray = [];
    var i = 0;//from   w w w . j a  v a  2 s.  co m
    var j = 0;
    var element;
    var temp;

    for (i = 0; i < originalArray.length; i+=1) {
        element = originalArray[i];
        if (element.constructor !== Array) {
            newArray.push(element);
        } else {
            temp = element.flatten();
            for (j = 0; j < temp.length; j++) {
                newArray.push(temp[j]);
            }
        }
    }

    return newArray;
}

var array;

array = [1, 2, 3, 4];
console.log(array.flatten())

array = [1, 2, [3, 4], [5, 6]];
console.log(array.flatten());
console.log(array); // Not changed

array = [0, ["string", "values"], 5.5, [[1, 2, true], [3, 4, false]], 10];
console.log(array.flatten());

Related

  1. flatten()
    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;
    
  2. flatten()
    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]);
      });
    };
    
  3. flatten()
    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 {
    ...
    
  4. flatten()
    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;
    
  5. flatten()
    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];
    ...
    
  6. flatten()
    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);
    ...
    
  7. flatten()
    var exchanges = [
      [
        {symbol: "JNJ", price: 2030.00, volume:48984}, 
         {symbol: "PWC", price: 4340.00, volume:15985}
      ],
      [
        {symbol: "CISC", price: 4563.00, volume:874651},
        {symbol: "KROG", price: 712.00, volume:8949}
      ]
    ...
    
  8. flatten()
    Array.prototype.flatten = function(){
      var result = [];
      this.forEach(function(x) {
        result = result.concat(x);
      });
      return result;
    };
    
  9. flatten()
    Array.prototype.flatten = function () {
        return this.reduce((p,c) => p.concat(c), [])