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

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

|1 2 3|    

|4 5 6|

|7 8 9|

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

|1 4 7|    

|2 5 8|

|3 6 9|

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

回答:

请参阅文章:在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]]));

以上是 用javascript中矩阵的列交换(换位)行 的全部内容, 来源链接: utcz.com/qa/409203.html

回到顶部