0

EdgeJS という TypeScript を使用してグラフ測定ライブラリを作成しました。また、ジャスミンを使用して単体テストを作成し、これが正しいことを確認しました。

問題は、テストに失敗したことであり、根本的な原因は、未定義ではなくゼロで埋められた配列を初期化する関数があり、その初期化メソッドが初期化した配列を「記憶」しているように見えることであり、結果に影響します。

単体テスト ページのコンソール出力を見ると、この行が配列をゼロだけでなく数値で出力していることがわかります。

4

1 に答える 1

1

この短い例をまとめました。

  1. 長さの異なる配列を取得するのに問題はありません
  2. 値を変更しても、値を記憶することに問題はありません

EdgeJS コードから取得しているコンソール出力の詳細を提供できる場合は、これを特定するのに役立つ場合があります。

class ArrayUtilities {
    private arrayOfZeros(n: number) : number[] {
        var a: number[] = [];
        for (var i = 0; i < n; i++) { 
            a[i] = 0;
        }
        console.log("New array", a);
        return a;
    }

    test() {
        var a: number[] = this.arrayOfZeros(5);
        for (var i = 0; i < a.length; i++) {
            a[i] = 1;
        }
        console.log("Updated array", a);
        var b: number[] = this.arrayOfZeros(6);
        var c: number[] = this.arrayOfZeros(2);
    }
}

var au = new ArrayUtilities();
au.test();

次の出力が得られます...

New array[0, 0, 0, 0, 0]app.js?1 (line 8)
Updated array[1, 1, 1, 1, 1]app.js?1 (line 16) 
New array[0, 0, 0, 0, 0, 0]app.js?1 (line 8)
New array[0, 0]app.js?1 (line 8)
于 2012-10-30T11:09:36.450 に答える