2D Array transpose - Node.js Math

Node.js examples for Math:Matrix

Description

2D Array transpose

Demo Code


Array.prototype.transpose = function() {

  // Calculate the width and height of the Array
  var a = this,/*w w  w . jav  a  2 s . c  om*/
  w = a.length ? a.length : 0,
  h = a[0] instanceof Array ? a[0].length : 0;

  // In case it is a zero matrix, no transpose routine needed.
  if(h === 0 || w === 0) { return []; }

  /**
  * @var {Number} i Counter
  * @var {Number} j Counter
  * @var {Array} t Transposed data is stored in this array.
  */
  var i, j, t = [];

  // Loop through every item in the outer array (height)
  for(i=0; i<h; i++) {

    // Insert a new row (array)
    t[i] = [];

    // Loop through every item per item in outer array (width)
    for(j=0; j<w; j++) {

      // Save transposed data.
      t[i][j] = a[j][i];
    }
  }

  return t;
};

Related Tutorials