Почему мое свойство объекта не определено при использовании его в операторе if? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь найти в массиве через l oop

      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);
            }
        }

Я спрашиваю, есть ли объект, и если он есть, то pu sh свойство name в переменная matrix и, как ни странно, свойство this.grid[i][j].name правильно определено, но почему оно не определено с использованием свойства в операторе if?

1 Ответ

2 голосов
/ 28 апреля 2020

пожалуйста, попробуйте этот подход

 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...