繁体   English   中英

为什么我的 object 属性在 if 语句中使用时未定义?

[英]Why is my object property undefined when using it in a if-statement?

我正在尝试通过 for 循环在数组中搜索

      let matrix = [];
      for(let i=0; i<this.row; i++){
        for(let j=0; j<this.column; j++){
            if(this.grid[i][j].name != ""){
              matrix.push(this.grid[i][j].name);
              console.log(matrix);
            }
        }

但它不起作用。 我收到this.grid[i][j].name undefined的错误,尽管这可以完美地工作:

      let matrix = [];
      for(let i=0; i<this.row; i++){
        for(let j=0; j<this.column; j++){
            if(this.grid[i][j]){
              matrix.push(this.grid[i][j].name);
              console.log(matrix);
            }
        }

我问是否有一个 object 如果有,然后将 name 属性推入变量matrix ,奇怪的是属性this.grid[i][j].name是正确定义的,但为什么没有使用该属性定义在 if 语句中?

请尝试这种方法

 let matrix = [];
      for(let i=0; i<this.row; i++){
        for(let j=0; j<this.column; j++){
            if(this.grid[i][j] && this.grid[i][j].name){
              matrix.push(this.grid[i][j].name);
              console.log(matrix);
            }
        }

这样你可以检查this.grid[i][j]是否存在然后只检查this.grid[i][j].name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM