【发布时间】:2016-01-15 21:59:27
【问题描述】:
我正在使用 Google 的 Blockly 开展一个项目,但部分文档难以理解。谁能帮我理解以下for循环的结束条件(xml = allXml[i])?
var allXml = Blockly.Xml.workspaceToDom(workspace);
var allCode = [];
for (var i = 0, xml; xml = allXml[i]; i++) {
var headless = new Blockly.Workspace();
Blockly.Xml.domToWorkspace(headless, xml);
allCode.push(Blockly.JavaScript.workspaceToCode(headless));
headless.dispose();
}
我想当 allXml[i] 未定义时循环会退出,但是你怎么能像这样遍历一个 XML 对象呢?它似乎总是返回 undefined 并完全跳过循环。
感谢您的帮助
大部分函数的定义可以在https://code.google.com/p/blockly/source/browse/trunk/core/xml.js?r=1614找到
我从中提取的文档页面是https://developers.google.com/blockly/custom-blocks/code-structure?hl=en
【问题讨论】:
-
您对循环如何终止是正确的。至于像这样遍历 XML,他们必须将其定义为某种数组。试试
console.log(allXml)看看它是什么类型的对象。 -
我有。这是实际的xml。它看起来像 xml,其行为方式与您期望 xml 与 .childnodes 和 .childElementCount 一起表现的方式相同。
标签: javascript xml for-loop indexing blockly