js实现方阵
实现方阵的方法
使用JavaScript实现方阵可以通过多种方式完成,具体取决于需求。以下是几种常见的实现方法:
使用二维数组创建方阵
通过嵌套数组可以轻松创建方阵。以下代码生成一个n×n的方阵,并初始化所有元素为0:
function createSquareMatrix(n) {
let matrix = [];
for (let i = 0; i < n; i++) {
matrix[i] = [];
for (let j = 0; j < n; j++) {
matrix[i][j] = 0;
}
}
return matrix;
}
动态填充方阵元素
如果需要动态填充方阵元素,可以通过回调函数实现:

function fillSquareMatrix(n, fillCallback) {
let matrix = [];
for (let i = 0; i < n; i++) {
matrix[i] = [];
for (let j = 0; j < n; j++) {
matrix[i][j] = fillCallback(i, j);
}
}
return matrix;
}
使用Array.from简化创建
利用Array.from可以更简洁地生成方阵:
function createSquareMatrix(n) {
return Array.from({ length: n }, () => Array(n).fill(0));
}
方阵的转置
转置方阵可以通过交换行和列实现:

function transposeMatrix(matrix) {
return matrix[0].map((_, colIndex) => matrix.map(row => row[colIndex]));
}
方阵乘法
实现两个方阵的乘法:
function multiplyMatrices(a, b) {
const n = a.length;
let result = createSquareMatrix(n);
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
for (let k = 0; k < n; k++) {
result[i][j] += a[i][k] * b[k][j];
}
}
}
return result;
}
使用ES6类封装方阵
通过类的方式封装方阵操作:
class SquareMatrix {
constructor(n, initialValue = 0) {
this.matrix = Array.from({ length: n }, () => Array(n).fill(initialValue));
}
get(row, col) {
return this.matrix[row][col];
}
set(row, col, value) {
this.matrix[row][col] = value;
}
transpose() {
this.matrix = this.matrix[0].map((_, colIndex) => this.matrix.map(row => row[colIndex]));
}
}
以上方法涵盖了方阵的创建、填充、转置和乘法等基本操作,可以根据实际需求选择适合的实现方式。






