javascript - FOR 循环和数组问题
问题描述
我正在使用 Adobe Livecycle Designer 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(); }
结果 - 获得第二个项目 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 项。对于下一次迭代,没有第 3 项。所以代码因错误而中断。但this.rawValue
仍然有2个项目。
其中,当this.rawValue = sfcArray.toString();
在循环之外时,代码因错误而中断并且其中this.rawValue
没有任何项目。
推荐阅读
- javascript - chrome.runtime.onmessage 没有启动
- arrays - 即使在应用重新启动后,如何在 Swift 中存储一系列帖子?
- android - HERE 地图:Android SDK 中 MapDataPrefetcher 的默认初始大小
- c# - 无法翻译 LINQ 表达式(EF Core 中的深度查询)
- javascript - JavaScript 递归调用 Axios.get
- c++ - std::shuffle_order_engine 表是如何管理的?
- symfony - 无法在 Symfony 3.4.35 中动态切换数据库
- python - python urllib库中的geturl()不起作用
- liquidsoap - 尝试使用 StereoTool 在 Liquidsoap 中处理音频时出现问题
- python - Python:查找列表中元素的所有组合以达到某个值