我试图创建一个多维数组来保存数据但是我得到一个错误(" TypeError:错误#1010:一个术语未定义且没有属性。")。
var cols:int = sheet.cols;
var rows:int = sheet.values.length;
var ridx:int = 0;
var cidx:int = 0;
var out:Array = new Array();
var i:int;
for (i=0; i < cols; i++) {
out[i] = new Array();
var j:int;
for (j=0; j < rows; j++) {
out[ridx][cidx] = sheet.getCell(j, i).value;
ridx++;
if(ridx >= rows) {
cidx++;
ridx = 0;
}
}
}
我做错了什么?
提前致谢!
编辑:
现在我有了这段代码:
for (var i:int = 0; i < cols; i++) {
out[i] = new Array();
for (var j:int = 0; j < rows; j++) {
out[j][i] = sheet.getCell(j, i).value; //IM GETTING THE ERROR HERE
}
}
答案 0 :(得分:0)
您正在尝试将单元格值分配给输出数组中不存在的位置。
在第一个i
循环中,您指定out[0] = new Array();
,然后在j
循环中设置out[0][0] = sheet.getCell(0,0).value;
在第二个j
循环中,您将设置out[1][0] = sheet.getCell(1,0).value;
在这种情况下,sheet.getCell(1,0)
可能会返回null
,但无论是否,out[1]
为空,因此您的代码会转换为null[0] = ...
- 这会触发你看到的错误。
您可以通过在内循环中交换i
和j
来解决此问题。