使用来自另一个类的属性(使用打字稿)创建数组时出现问题

时间:2020-07-04 09:06:34

标签: arrays typescript class object attributes

我正在尝试从另一个类中的一个类创建对象数组,但是当我将其推入时会引发错误,提示“无法读取未定义的属性'0'。有人可以帮助我吗? 这是我的示例:(我正在使用打字稿)

导出类Vector {

private elements:Array<number>

constructor(n:number, k:number){
    this.elements = []
    for (let i=0; i<n; i++) {
        this.elements.push(Math.floor(Math.random()*k)+1);
    } 
}

}

类矩阵{

private elements:Vector[];

constructor(n:number, m:number, k:number) {
   this.elements = new Array();
   for (let i=0; i<n; i++){   
        for (let j=0; j<m; j++) {
            this.elements[i][j].push(Math.floor(Math.random()*k)+1)
        }    
    }
}

}

1 个答案:

答案 0 :(得分:0)

首先,this.elements = new Array应该是this.elements = new Array()

并且您不能执行this.elements[i][j].push(),因为this.elements[i][j]不存在,您不能推送到undefined

它应该像这样:

constructor(n:number, m:number, k:number) {
    this.elements = new Array();
    for (let i=0; i<n; i++){
        this.elements.push(new Array());
        for (let j=0; j<m; j++) {
            this.elements[i].push(Math.floor(Math.random()*k)+1)
        }    
    }
}