FOR 循环和阵列问题

我正在使用 Adobe 实时循环设计器 ES4 来创建一些报告。基于 XML 尝试填充表。我有阵列问题。我将数据推送到数组中的 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();

结果 - 获取所有项目


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();

}

为什么第一个示例不起作用,第二个示例正确工作?我需要在另一个循环中使用此数组。如何解决?


阿波罗的战车
浏览 124回答 1
1回答

慕田峪7331174

因为,如果它有2个项目,你循环它10。发生的事情是,当在循环内部时,this.rawValue 会更新 2 次。第一次 一个项目将在那里。第二次2个项目。对于下一次迭代,没有第三项。因此,代码会中断并出现错误。但仍然有2个项目。this.rawValue = sfcArray.toString();this.rawValue其中 as,当位于循环之外时,代码会错误地中断,并且其中没有任何项。this.rawValue = sfcArray.toString();this.rawValue
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript