Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-09-2003, 09:57   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Beiträge: 13
zahlen in mehrdimensionalen Arrays sortieren

Guten Tach,

ich könnt heulen,

also ich hab ein mehrdimensionales array:

hisc = new Array();
hisc.push({name:n1, money:m1, prozentr1});
hisc.push({name:n2, money:m2, prozentr2});

jetzt soll dieses array sortiert werden und zwar nach dem wert money. Der witz is logisch, money is ne zahl und die kann sowohl positiv als auch negativ sein.
hab schon diverses probiert, hilfe!

Danke
Schnico
Schnico ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:19   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
was heist money ist eine zahl du meinst die werte m1, m2
ActionScript:
  1. hisc.sortOn("money");
die kannst du so sortieren
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:31   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Beiträge: 13
Genau da is das Problem:
z.B.

m1 = -500;
m2 = 3000;
m3 = 1000;
wenn ich die jetzt mit sortOn("money") sortiere, dann sortiert er:
-500, 1000, 3000 weil er die werte wie strings behandelt und nicht wie zahlen.
hatte auch schon eine andere funktion gehabt, aber dann wirft er mir den rest der werte durcheinander.
Schnico ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:34   #4 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
hi schnico,

man kann array.sort() auch mit einer vergleichsfunktion versehen. mehr dazu steht in der as-referenz:

ActionScript:
  1. hisc = new Array();
  2. //
  3. hisc.push({name:"erstes", money:100, prozent:10});
  4. hisc.push({name:"zweites", money:200, prozent:5});
  5. hisc.push({name:"drittes", money:50, prozent:50});
  6. //
  7. trace(hisc);
  8. //
  9. //
  10. compareFunction = function (a, b) {
  11.     if (a.money > b.money) {
  12.         return 1;
  13.     }
  14.     else if (a.money < b.money) {
  15.         return -1;
  16.     }
  17.     else {
  18.         return 0;
  19.     }
  20. };
  21. //
  22. //
  23. hisc.sort(compareFunction);
  24. //
  25. trace("----------------");
  26. trace(hisc);



@hay: mit dem sortOn("money") habe ich es nicht hingekriegt. vielleicht habe ich was falsch gemacht??


i++
i++ ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:44   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Beiträge: 13
i++,
dich kann ma halt was machen lassen,
witzigerweise hatte ich bereits so eine funktion gehabt aber da hat er wie gesagt die restlichen werte gewürfelt.
aba jetzt hats hin, ich dank dir,
ciao

Schnico
Schnico ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:48   #6 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
gerne

i++
i++ ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:48   #7 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi zusamme
ActionScript:
  1. n1=10;m1=14;r1=30
  2. n2=11;m2=20;r2=33
  3. n3=11;m3=-14;r2=33
  4. hisc = new Array();
  5. hisc.push({name:n1, money:m1, prozent:r1});
  6. hisc.push({name:n2, money:m2, prozent:r2});
  7. hisc.push({name:n2, money:m3, prozent:r2});
  8. trace(hisc[0]["money"])
  9. trace(hisc[1]["money"])
  10. trace(hisc[2]["money"])
  11.  
  12. hisc.sortOn("money");
  13. trace(hisc[0]["money"])
  14. trace(hisc[1]["money"])
  15. trace(hisc[2]["money"])
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 10-09-2003, 10:53   #8 (permalink)
i++
snafu
 
Benutzerbild von i++
 
Registriert seit: Feb 2003
Ort: 5 feet over ground
Beiträge: 214
jo, aber:

ActionScript:
  1. n1 = 10;
  2. m1 = 14;
  3. r1 = 30;
  4. n2 = 11;
  5. m2 = 110;
  6. r2 = 33;
  7. n3 = 11;
  8. m3 = -14;
  9. r2 = 33;
  10. hisc = new Array();
  11. hisc.push({name:n1, money:m1, prozent:r1});
  12. hisc.push({name:n2, money:m2, prozent:r2});
  13. hisc.push({name:n2, money:m3, prozent:r2});
  14. trace(hisc[0]["money"]);
  15. trace(hisc[1]["money"]);
  16. trace(hisc[2]["money"]);
  17. hisc.sortOn("money");
  18. trace(" ");
  19. trace(hisc[0]["money"]);
  20. trace(hisc[1]["money"]);
  21. trace(hisc[2]["money"]);

Ausgabe:

14
110
-14

-14
110
14

da hattest du es wohl zufällig mit den richtigen werten getestet


i++
i++ ist offline   Mit Zitat antworten
Alt 10-09-2003, 11:03   #9 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
heideneiaberauch
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele