Tri d'un tableeau mutlidimentionnel - A n'y plus rien comprendre !!?

Tri d'un tableeau mutlidimentionnel - A n'y plus rien comprendre !!? - Flash/ActionScript - Programmation

Marsh Posté le 26-08-2005 à 14:44:01    

J'essai desperement de trié un tableau mutlidimentionnel en action script, mais je n'y comprend plus rien.
 

Code :
  1. Regarder le code suivant, j'ai mis l'odre de la sortie a chaque fois :
  2. numbers_array = new Array();
  3. numbers_array.push({num:4, nom:"quatre"});
  4. numbers_array.push({num:1, nom:"un"});
  5. numbers_array.push({num:3, nom:"trois"});
  6. numbers_array.push({num:2, nom:"deux"});
  7. //Création d'un tableau de test => Jusque la tous va bien
  8. for(i in numbers_array){
  9. trace(numbers_array[i]["num"]); //Affiche 2,3,1,4
  10. }
  11. //L'affichage est inversé, mais pourquoi pas ?
  12. trace("_______" );
  13. numbers_array.reverse(); //Donc j'inverse le tableau pour voir....
  14. for(i in numbers_array){
  15. trace(numbers_array[i]["num"]); //Affiche 1,3,4,2
  16. }
  17. //Et là c'est le drame, l'ordre inverse de 2,3,1,4 est 1,3,4,2 !?!?!? Enfin, continuons avec des tris.....
  18. trace("_______" );
  19. numbers_array.sortOn("num" ); //Je me dis q'un tri de 1,3,4,2 devrais être 1,2,3,4 ?
  20. for(i in numbers_array){
  21. trace(numbers_array[i]["num"]); //Affiche 3,2,1,4
  22. }
  23. //Hey bas non, le tri me sort 3,2,1,4 !?!?!?
  24. trace("_______" );
  25. numbers_array.sortOn("nom" ); // alors trions, par le nom !!!!
  26. for(i in numbers_array){
  27. trace(numbers_array[i]["nom"]); //Affiche un,quatre,deux,trois
  28. }
  29. //Toujours raté !! Je ne sais pas, c'est peut la fonction for ... in qui affiche dans l'ordre qu'elle veut ?


 
Si quelqu'un à une idée de comment flash tri ses tableaux mutlimentionnels, ça m'interesse !!!

Reply

Marsh Posté le 26-08-2005 à 14:44:01   

Reply

Marsh Posté le 26-08-2005 à 18:35:38    

Bon j'ai finis par récrire la fonction sortOn à ma sauce, y'a moins d'option que la vrai mais au moins elle fais ce que je lui demande..... elle trie !
 

Code :
  1. Array.prototype.sortOn = function(cols:Object){
  2. var i:Number = 0;
  3. var j:Number = 0;
  4. var temp:Object;
  5. for(i in this){
  6.  j = i + 1;
  7.  for(j in this){
  8.   if(this[j][cols] > this[i][cols]){
  9.    temp = this[i];
  10.    this[i] = this[j];
  11.    this[j] = temp;
  12.   }
  13.   j++;
  14.  }
  15.  i++;
  16. }
  17. }

Reply

Marsh Posté le 27-09-2005 à 16:50:39    

:bounce:  personne n'a d'idée sur le fonctionnement du tri mutlitimentionnel par marcormedia ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed