簡體   English   中英

轉置2D數組-無法設置未定義的屬性“ 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

如何正確初始化2D數組?

PS已經嘗試了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每次迭代創建另一個內部數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM