Question

J'essaie de comprendre le fonctionnement de ce morceau de code de Advanced Actionscript de Keith Peter. Il existe essentiellement une boucle for destinée à diviser des paires clé / valeur séparées par:. Voici le code:

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;
}

And tokens est un tableau de chaînes contenant des valeurs telles que:

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

Ce que je ne comprends pas, c'est quelle est la signification de " [0] " et "[1]". Comment [1] indique-t-il que le val de chaîne doit contenir les données après le signe ":" split (la valeur, telle que "GraphicTile" ou "MapTest_Tile01"), et [0] pointant vers les données précédant la scission (des clés telles que "Type" ou "graphicClass"). La référence Actionscript d’Adobe ne répertorie aucun paramètre pouvant être transmis à la méthode Array.split en utilisant des crochets comme celui-ci.

Était-ce utile?

La solution

La méthode split () renvoie un tableau des jetons créés en scindant la chaîne. Ce tableau est ensuite indexé avec [0] et [1] pour obtenir les premier et second membres. C'est exactement la même chose que les jetons [i] utilisés pour accéder au i e membre du tableau de jetons.

Autres conseils

nick a donné la bonne réponse ...

comme l'indique implicitement CookieOfFortune, le code n'est pas vraiment bon ...

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;
}

cela éviterait de scinder la chaîne deux fois ... aussi peut-être que cela rend plus clair ce qui se passe ...

greetz

back2dos

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top