📜  在 JavaScript 中转置二维 (2D) 数组(1)

📅  最后修改于: 2023-12-03 15:37:22.132000             🧑  作者: Mango

在 JavaScript 中转置二维 (2D) 数组

在 JavaScript 中,可以使用简单的 for 循环和二维数组来转置一个矩阵(即二维数组),实现行与列的转换。下面是一个例子,介绍了如何使用 for 循环和二维数组来转置一个矩阵。

二维数组的声明

在 JavaScript 中,声明二维数组可以使用以下方式:

let arr = new Array(numRows);
for(let i = 0; i < numRows; i++) {
    arr[i] = new Array(numColumns);
}

这会创建一个 numRows 行,numColumns 列的二维数组。这个数组可以存储任何类型的数据,包括数字、字符串等等。

转置二维数组

下面是如何转置一个二维数组的示例:

function transpose(matrix) {
    let result = new Array(matrix[0].length);
    for (let i = 0; i < matrix[0].length; i++) {
        result[i] = new Array(matrix.length);
        for (let j = 0; j < matrix.length; j++) {
            result[i][j] = matrix[j][i];
        }
    }
    return result;
}

在这个例子中,我们创建了一个名为 transpose 的函数来实现矩阵的转置。该函数接受一个二维数组作为参数(即要转置的矩阵)并返回转置后的矩阵。

在函数中,我们使用以下步骤来转置矩阵:

  1. 创建一个名为 result 的数组,其大小为原始矩阵的列数(即转置后的行数)。
  2. 遍历原始矩阵的列。
  3. 在循环中,我们创建一个包含原始矩阵行数的新数组。
  4. 将原始矩阵的每一行的对应项复制到新数组的对应位置中。
  5. 把新数组复制到结果数组 result 中。
示例

下面是一个使用示例:

let matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

let result = transpose(matrix);

console.log(result);
// Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

在上述示例中,我们将一个 3x3 的矩阵转置为 3x3 的转置矩阵,并将其输出到控制台。

总结

在 JavaScript 中,使用 for 循环和二维数组是一种转置矩阵的简单方法。上述示例演示了如何在 JavaScript 中使用这种方法来转置矩阵。