小编典典

用javascript中矩阵的列交换(换位)行

javascript

例如,我有一个像这样的矩阵:

|1 2 3|    
|4 5 6|
|7 8 9|

我需要将其转换成这样的矩阵:

|1 4 7|    
|2 5 8|
|3 6 9|

实现此目标的最佳方式是什么?


阅读 511

收藏
2020-05-01

共1个答案

小编典典

请参阅文章:在JavaScript和jQuery中转置数组

function transpose(a) {



  // Calculate the width and height of the Array

  var w = a.length || 0;

  var 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;

}



console.log(transpose([[1,2,3],[4,5,6],[7,8,9]]));
2020-05-01