我在打字稿中有一个代码来转置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
如何正确初始化2D阵列?
P.S。已经尝试for..in
但仍有问题
有什么想法吗?
答案 0 :(得分:0)
应该是:
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
的每次迭代创建另一个内部数组