带有方括号[]的Array.Split(),来自高级动作脚本动画书
-
05-07-2019 - |
题
我试图理解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
不隶属于 StackOverflow