Typescript - 初始化二维数组错误
2017-06-14
8768
我正在尝试为 [[x_1,y_1,z_1], [x_2,y_2,z_2], [...],...] 等坐标创建一个二维数组。
这是我的初始化和初始声明代码:
var ALLcoordinates:number[][];
for (var i=0; i< dims; i++) {
ALLcoordinates[i]=[];
for (var j=0; j<chainSize; j++){
ALLcoordinates[i][j]=0;
}
}
之后,我在此循环中为每一行分配新值:
for (var i = 0; i < chainSize; i++) {
var alea1 = Math.floor(Math.random()*(3-0+1))+0;
var alea2 = Math.floor(Math.random()*(3-0+1))+0;
var alea3 = Math.floor(Math.random()*(3-0+1))+0;
var coordinates:number[];
coordinates = [alea1,alea2,alea3];
ALLcoordinates[i]=coordinates;
}
但是当我编译它时,我收到此错误
Uncaught TypeError: Cannot set property '0' of undefined
此行
ALLcoordinates[i] = [];
我将不胜感激任何帮助,谢谢
2个回答
声明数组不会初始化它。
您缺少
ALLcoordinates
初始化:
var ALLcoordinates:number[][];
ALLcoordinates = []; // ◄ initialize the array
for (var i=0; i< dims; i++) {
ALLcoordinates[i]=[];
for (var j=0; j<chainSize; j++){
ALLcoordinates[i][j]=0;
}
}
Koby Douek
2017-06-14
当您做
var allcoordinates:number [] [];
时,您没有使用任何值初始化它。您只是指定了它的类型。它仍将在运行时
。因此,
未定义[0]
引发错误。在使用之前初始化它:
620257846
Saravana
2017-06-14