Angular 2 Property undefined while Checking it

问题描述:

得到了一个很小的问题。Angular 2 Property undefined while Checking it

if(this.arrTest[1][1][1][0][0] === undefined){ 
     console.log("this array is undefined"); 
} 

控制台: 错误类型错误:无法读取属性“1”的未定义

我用同样的类型检查经常在我的项目。只有在这一行上它失败了,如果(arrTest ..),if(typeof arrTest ..)也尝试过。任何想法 ?

编辑:console.log不会被触发。

+0

可以请你添加一些信息呢?这个条件块的上下文是什么?一个组件?类?服务?不能帮助你的小信息 –

+0

@ Jota.Toledo我自己发现了它。谢谢。它与组件,类或其他内容无关。我只是没有仔细阅读错误,它已经说属性1是未定义的,所以我只是不能检查更深的属性... – Doomenik

错误表示正在匹配的属性不存在。

如果下列之一为真

  • this.arrTest即会发生是不确定的或
  • this.arrTest [1]未定义
  • this.arrTest [1] [1]是未定义的。

所以基本上你可以检查上述所有如下

if(this.arrTest === undefined || this.arrTest[1] === undefined || this.arrTest[1][1] === undefined || this.arrTest[1][1][1] === undefined || this.arrTest[1][1][1][0] === undefined || this.arrTest[1][1][1][0][0] === undefined) 
+0

我认为'this.arrTest [1] [1] [1] [0] [ 0]'如果this.arrTest [1] [1]'未定义,那么错误信息将显示为'ERROR TypeError:无法读取未定义的属性'1' –

+0

是的尝试过,同样的错误。 – Doomenik