FOR循环和数组问题

FOR loop and Array issue

我正在使用 Adob​​e Livecycle Designer ES4 创建一些报告。基于XML 尝试填充table。我对阵列有疑问。我在 for 循环中将数据推入数组。下面是我的代码示例:

  1. 结果 - 空白文本框

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

  3. 结果 - 得到第 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 中没有任何项目。