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,在使用管道时可以看到这种行为。有什么建议吗?管道输出是什么?它基本上过滤课程并返回正在进行的课程的程序包装器。课程有日期,如果日期在今天之后,则显示日期。如果没有,则不显示。您遇到了什么问题?有些课程即使在那里并且适合过滤器,也不会出现?当涉及到过滤器时,并非所有课程都是空的。因此,我无法过滤。