Bien qu'il n'y ait pas d'équivalent natif à la fonction Array.sortOn, il suffit trivial d'implémenter votre propre algorithme de tri:
// Bubble sort.
// always initialize variables -- it save memory.
var ordered:Boolean = false;
var l:int = xmlList.length();
var i:int = 0;
var curr:XML = null;
var plus:XML = null;
while(!ordered)
{
// Assume that the order is correct
ordered = true;
for(i = 0; i < l; i++)
{
curr = xmlList[ i ];
plus = xmlList[ i + 1 ];
// If the order is incorrect, swap and set ordered to false.
if(Number([email protected]) < Number([email protected]))
{
xmlList[ i ] = plus;
xmlList[ i + 1 ] = curr;
ordered = false;
}
}
}
mais, de façon réaliste, il est loin plus facile et moins buggé d'utiliser XMLListCollection. De plus, si quelqu'un d'autre lit votre code, ils le trouveront plus facile à comprendre. S'il vous plaît faites-vous une faveur et évitez de réinventer la roue à ce sujet.
pourquoi voulez-vous le faire? presque toutes les applications de xmllist qui pourraient nécessiter un tri sont effectuées via xmllistcollection – Amarghosh
Une raison spécifique pour laquelle l'objet XMLList doit être trié alors qu'une XMLListCollection peut facilement fonctionner pour vous? – Sri
Je ne peux pas décrire mon besoin pour cela dans les 600 caractères que j'ai. Mon application est l'importation et la maintenance d'une grande variable XML, et si je commence à couper et modifier des clones de nœuds de cette variable, il serait difficile de garder la variable d'origine à jour. J'espérais être capable de faire des actions de tri sur la variable directement. – invertedSpear