转置二维数组 - 无法设置未定义的 属性 '0'

Transpose a 2D array - Cannot set property '0' of undefined

我在打字稿中有一段代码可以转置 M x N 矩阵:

private transpose(a: number[][]): number[][] {
    let m: number = a.length;
    let n: number = a[0].length;
    let b: number[][] = [[]]; // Tried without "[[]]"
    for (let i: number = 0; i < m; i++) {
        for (let j: number = 0; j < n; j++) {
            b[j][i] = a[i][j]; // Error
        }
    }
    return b;
}

但是,我有一个错误:

Uncaught (in promise): TypeError: Cannot set property '0' of undefined

如何正确初始化二维数组?

P.S。已经尝试 for..in 但仍有问题

有什么想法吗?

应该是:

let b: number[][] = [];
for (let i: number = 0; i < m; i++) {
    b[i] = [];

    for (let j: number = 0; j < n; j++) {
        b[i][j] = a[j][i];
    }
}

您首先创建一个数组,然后针对 i 的每次迭代创建另一个内部数组