Nodejs Array Flatten flattenInPlace()

Here you can find the source of flattenInPlace()

Method Source Code

Array.fill = function(count, generator){
   var a = new Array(count)
   for(var i=0; i<count; i++){
      a[i] = generator(i)//  w  w w  . jav  a  2 s  . com
   }
   return a
}

function isDefined(a){
   return (a !== null) && (a !== undefined)
}

Array.prototype.flattenInPlace = function(){
   var readIndex = 0,
      writeIndex = 0
   
   while(readIndex < this.length){
      var value = this[readIndex]
      
      if(isDefined(value)){
         this[writeIndex++] = this[readIndex++]
      } else {
         readIndex++
      }
   }

   this.length = writeIndex
}

Related

  1. flattenArray()
    function flattenArray(a, b) {
      return a.concat(b);
    Array.prototype.flattenArray = function() {
      return this.reduce(flattenArray);
    var arrays = [[1, 2, 3], [4, 5], [6]];
    console.log(arrays.flattenArray());
    
  2. flattenArray()
    Array.prototype.flattenArray = function() {
      var flatArray = arrays.reduce(function(a, b) {
      return a.concat(b);
    }, []);
    console.log(flatArray);
    return "";
    var arrays = [[1, 2, 3], [4, 5], [6]];
    console.log(arrays.flattenArray())
    ...
    
  3. flattenArray()
    Array.prototype.flattenArray = function()
      var rescultArray=[];
        this.reduce(function(pre, cur,index) 
          rescultArray=index==1?rescultArray.concat(pre,cur):rescultArray.concat(cur);
         });
       return rescultArray;
    var arrays = [[1, 2, 3], [4, 5], [6]];  
    console.log(arrays.flattenArray());
    
  4. flattenArray()
    Array.prototype.flattenArray =  function (){
      var array = this.reduce(function(a, b) {return a.concat(b);}, []);
      return array;
    var arrays = [[2, 3, 4], [1, 2], [2]];
    console.log( arrays.flattenArray() );
    
  5. flattenArray()
    var arrays = [[1, 2, 3], [4, 5], [6]];
    Array.prototype.flattenArray = function() 
          arrays.reduce(function(previousValue, currentValue, index, array) 
            console.log(previousValue+"---"+currentValue);
            return previousValue.concat(previousValue);
          });
    console.log(arrays.flattenArray);