我正试图通过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);
}
}
我问是否有对象,如果有,那么将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