在 Flex 中将列数组转换为行数组
Converting Column Array to Rows Array in Flex
我正在尝试创建一个多维数组来保存数据,但出现错误 ("TypeError: Error #1010: A term is undefined and has no properties.")。
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
}
}
您正在尝试将单元格值分配给输出数组中不存在的位置。
在第一个 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)
可能 return null
,但无论是否如此,out[1]
都是 null,因此您的代码转换为 null[0] = ...
-- 这将触发您看到的错误。
您可以通过在内部循环中交换 i
和 j
来解决这个问题。
我正在尝试创建一个多维数组来保存数据,但出现错误 ("TypeError: Error #1010: A term is undefined and has no properties.")。
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
}
}
您正在尝试将单元格值分配给输出数组中不存在的位置。
在第一个 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)
可能 return null
,但无论是否如此,out[1]
都是 null,因此您的代码转换为 null[0] = ...
-- 这将触发您看到的错误。
您可以通过在内部循环中交换 i
和 j
来解决这个问题。