FOR循环和数组问题
FOR loop and Array issue
我正在使用 Adobe Livecycle Designer ES4 创建一些报告。基于XML 尝试填充table。我对阵列有疑问。我在 for 循环中将数据推入数组。下面是我的代码示例:
结果 - 空白文本框
var print_data = xfa.record.containerPrintingData;
var sfcArray = [];
for (var i = 0; i < 10; i++) {
sfc = print_data.resolveNode("sfcPrintingData["+ i +"]").sfc.value;
sfcArray.push(sfc);
};
this.rawValue = sfcArray.toString();
Results - 获得所有物品
var print_data = xfa.record.containerPrintingData;
var sfcArray = [];
for (var i = 0; i < 10; i++) {
sfc = print_data.resolveNode("sfcPrintingData["+ i +"]").sfc.value;
sfcArray.push(sfc);
this.rawValue = sfcArray.toString();
}
结果 - 得到第 2 项 x 10
var print_data = xfa.record.containerPrintingData;
var sfcArray = [];
for (var i = 0; i < 10; i++) {
sfc = print_data.resolveNode("sfcPrintingData[1]").sfc.value;
sfcArray.push(sfc);
this.rawValue = sfcArray.toString();
}
为什么第一个示例不起作用而第二个示例正确?我需要在另一个循环中使用这个数组。如何解决?
因为,如果它有 2 个项目,而你将它循环 10 个。
发生的事情是,当 this.rawValue = sfcArray.toString();
在循环内时,this.rawValue 被更新了 2 次。第一次会有一个项目。第二次 2 项。
对于下一次迭代,没有第三项。所以代码因错误而中断。但是this.rawValue
还有2个项目。
因为,当 this.rawValue = sfcArray.toString();
处于循环之外时,代码因错误而中断,并且 this.rawValue
中没有任何项目。
我正在使用 Adobe Livecycle Designer ES4 创建一些报告。基于XML 尝试填充table。我对阵列有疑问。我在 for 循环中将数据推入数组。下面是我的代码示例:
结果 - 空白文本框
var print_data = xfa.record.containerPrintingData; var sfcArray = []; for (var i = 0; i < 10; i++) { sfc = print_data.resolveNode("sfcPrintingData["+ i +"]").sfc.value; sfcArray.push(sfc); }; this.rawValue = sfcArray.toString();
Results - 获得所有物品
var print_data = xfa.record.containerPrintingData; var sfcArray = []; for (var i = 0; i < 10; i++) { sfc = print_data.resolveNode("sfcPrintingData["+ i +"]").sfc.value; sfcArray.push(sfc); this.rawValue = sfcArray.toString(); }
结果 - 得到第 2 项 x 10
var print_data = xfa.record.containerPrintingData; var sfcArray = []; for (var i = 0; i < 10; i++) { sfc = print_data.resolveNode("sfcPrintingData[1]").sfc.value; sfcArray.push(sfc); this.rawValue = sfcArray.toString(); }
为什么第一个示例不起作用而第二个示例正确?我需要在另一个循环中使用这个数组。如何解决?
因为,如果它有 2 个项目,而你将它循环 10 个。
发生的事情是,当 this.rawValue = sfcArray.toString();
在循环内时,this.rawValue 被更新了 2 次。第一次会有一个项目。第二次 2 项。
对于下一次迭代,没有第三项。所以代码因错误而中断。但是this.rawValue
还有2个项目。
因为,当 this.rawValue = sfcArray.toString();
处于循环之外时,代码因错误而中断,并且 this.rawValue
中没有任何项目。