2012-10-30 25 views
0

我寫了一個graph measurement library使用TypeScript調用EdgeJS。 我也寫過使用Jasmine的單元測試來驗證它是正確的。TypeScript變量初始化

問題是我有失敗的測試和根本原因,我認爲是我有一個函數來初始化數組填充零而不是未定義的數組,並且初始化方法似乎「記住」它已初始化的數組哪些影響結果。

您可以在控制檯的輸出中看到unit test page that this line打印輸出的數字,而不僅僅是我所期望的。

回答

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) 
+0

是的,我把立即執行功能,試圖解決這個問題。在創建並清零具有值的數組後,如何實現這一行,我錯過了什麼? –

+0

讓我創建一個較小的測試項目,以查看是否可以重新創建問題並隔離原因。 – Fenton

+0

非常感謝您,我的代碼在github中以問題鏈接形式打開。 –