Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 对象表示数组大小为0,但其中有6个元素_Typescript - Fatal编程技术网

Typescript 对象表示数组大小为0,但其中有6个元素

Typescript 对象表示数组大小为0,但其中有6个元素,typescript,Typescript,我有一个ProgrammeWrapper,但里面有一个数组。因此,当我试图安慰包装器时,下面是我看到的行为 当我读节目课时,它说的是空数组。任何线索都是好的。以下是我正在使用的此行为的原因是,第一行是在写入日志时生成的,而下一行是在展开日志时生成的。在控制台中运行以下代码: test = {lesson: [1, 2, 3]}; setTimeout(() => test.lesson.push(4), 0); test 这意味着在写入日志后数组会发生变化,因此第一行不会用新的大小更新

我有一个
ProgrammeWrapper
,但里面有一个数组。因此,当我试图安慰包装器时,下面是我看到的行为


当我读节目课时,它说的是空数组。任何线索都是好的。以下是我正在使用的

此行为的原因是,第一行是在写入日志时生成的,而下一行是在展开日志时生成的。在控制台中运行以下代码:

test = {lesson: [1, 2, 3]}; setTimeout(() => test.lesson.push(4), 0); test
这意味着在写入日志后数组会发生变化,因此第一行不会用新的大小更新

此外,每次在日志中展开一行时,都会计算所有内部值并保持不变,即使进行了进一步的更改。实际上,您可以达到以下情况:

Object {lesson: Array(3)}
    lesson:Array(4)
        0: 1
        1: 2
        2: 3
        3: 4
        4: 5
        length: 5
    __proto__: Array(0)
__proto__: Object

此行为的原因是,第一行是在写入日志时生成的,而下一行是在展开日志时生成的。在控制台中运行以下代码:

test = {lesson: [1, 2, 3]}; setTimeout(() => test.lesson.push(4), 0); test
这意味着在写入日志后数组会发生变化,因此第一行不会用新的大小更新

此外,每次在日志中展开一行时,都会计算所有内部值并保持不变,即使进行了进一步的更改。实际上,您可以达到以下情况:

Object {lesson: Array(3)}
    lesson:Array(4)
        0: 1
        1: 2
        2: 3
        3: 4
        4: 5
        length: 5
    __proto__: Array(0)
__proto__: Object

是否有可能
课程
数组在您使用
控制台.log时未初始化?@Raven nope。我刚刚检查了程序包装器是否已初始化。并且lesson和user这两个对象都已初始化。是否可能
lesson
数组在您的
控制台.log
时未初始化?@Raven nope。我刚刚检查了程序包装器是否已初始化。lesson和user两个对象都已初始化。我使用@Angular4和Typescript,在使用管道时可以看到这种行为。有什么建议吗?管道输出是什么?它基本上过滤课程并返回正在进行的课程的程序包装器。课程有日期,如果日期在今天之后,则显示日期。如果没有,则不显示。您遇到了什么问题?有些课程即使在那里并且适合过滤器,也不会出现?当涉及到过滤器时,并非所有课程都是空的。因此,我无法过滤。我使用@Angular4和Typescript,在使用管道时可以看到这种行为。有什么建议吗?管道输出是什么?它基本上过滤课程并返回正在进行的课程的程序包装器。课程有日期,如果日期在今天之后,则显示日期。如果没有,则不显示。您遇到了什么问题?有些课程即使在那里并且适合过滤器,也不会出现?当涉及到过滤器时,并非所有课程都是空的。因此,我无法过滤。