【问题标题】:TypeScript variable initializationTypeScript 变量初始化
【发布时间】:2012-10-19 17:03:34
【问题描述】:

我使用名为 EdgeJS 的 TypeScript 编写了一个 graph measurement library。 我还使用 Jasmine 编写了单元测试来验证它是否正确。

问题是我的测试失败,我认为根本原因是我有一个函数来初始化填充为零而不是未定义的数组,并且该初始化方法似乎“记住”了它已初始化的数组,这会影响结果。

您可以在unit test page that this line 的控制台输出中看到打印出带有数字的数组,而不仅仅是我预期的零。

【问题讨论】:

    标签: javascript typescript


    【解决方案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)
    

    【讨论】:

    • 是的,我使用了立即执行函数来尝试解决这个问题。在我创建并清零它具有值的数组之后的一行怎么可能,我错过了什么?
    • 让我创建一个较小的测试项目,看看是否可以重现问题并找出原因。
    • 非常感谢,我的代码在github中打开,问题中有链接。
    • 快速提问...您在控制台中看到了什么,即“新数组”...什么?
    • new-arr [0.25, 0, 0.25, 0.5] Edge.js:120 new-arr [2, 2, 2, 2] Edge.js:120 new-arr [1.3333333333333333, 1.3333333333333333, 1.3333333333333333, 1.3333333333333333] Edge.js:120 new-arr [2.5, 0.5, 0, 0.5] Edge.js:120 new-arr [0.5, 2.5, 0.5, 0] Edge.js:120 new-arr [0, 0.5 , 2.5, 0.5] Edge.js:120 new-arr [0.5, 0, 0.5, 2.5]
    猜你喜欢
    • 2019-05-17
    • 2021-07-08
    • 2012-06-15
    • 2016-11-03
    • 2017-03-20
    • 2016-07-31
    • 2010-12-30
    • 2017-09-11
    • 2016-05-28
    相关资源
    最近更新 更多