我试图理解Keith Peter的高级动作脚本中的这段代码是如何工作的。基本上有一个for循环继续分割键/值对分隔:。这是代码:

var definition:Object = new Object();
for(var i = 0;i < tokens.length; i++)  
{
    var key:String = tokens[i].split(":")[0];
    var val:String = tokens[i].split(":")[1];
    definition[key] = val;
}

令牌是一个包含以下值的字符串数组:

["type:GraphicTile", "graphicClass:MapTest_Tile01"]

我无法理解的是,“[0]”的含义是什么?和“[1]”。 [1]如何表明String val用于保存“:”之后的数据。 split(值,如“GraphicTile”或“MapTest_Tile01”)和[0]指向分割之前的数据(诸如“type”或“graphicClass”之类的键)。 Adobe的Actionscript引用没有列出任何可以使用这样的方括号传递给Array.split方法的参数。

有帮助吗?

解决方案

split()方法返回通过拆分字符串创建的标记数组。然后用[0]和[1]索引该数组以获得第一个和第二个成员。它与用于访问标记数组的 i 成员的标记[i]完全相同。

其他提示

尼克给出了正确答案......

正如CookieOfFortune所暗示的那样,代码并不是很好......

var definition:Object = new Object();
for(var i = 0;i < tokens.length; i++)  
{
    var parts:Array = tokens[i].split(":");
    var key:String = parts[0];
    var val:String = parts[1];
    definition[key] = val;
}

这样可以避免将字符串拆分两次......也许它会更清楚地发生什么......

格尔茨

back2dos

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top