Array.Split () в квадратных скобках [], из книги «Расширенная анимация действий» - PullRequest
1 голос
/ 29 июля 2009

Я пытаюсь понять, как работает этот кусок кода из Advanced Actionscript Кейта Питера. По сути, существует цикл 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 должна содержать данные после разделения ":" (значение, например, "GraphicTile" или "MapTest_Tile01"), и [0], указывающее на данные до разделения (ключи как " тип "или" graphicClass "). Ссылка на ActionScript от Adobe не содержит никаких параметров, которые можно передать в метод Array.split с помощью квадратных скобок, подобных этой.

Ответы [ 2 ]

1 голос
/ 29 июля 2009

Метод split () возвращает массив токенов, созданных путем разбиения строки. Затем этот массив индексируется с помощью [0] и [1], чтобы получить первый и второй члены. Это то же самое, что токены [i], используемые для доступа к i -ому члену массива токенов.

0 голосов
/ 29 июля 2009

Ник дал правильный ответ ...

Как прямо указывал 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;
}

это позволит избежать двойного разбиения строки ... также, возможно, это прояснит, что происходит ...

Greetz

back2dos

...