Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-12-2005, 12:22   #1 (permalink)
Whatever...
 
Benutzerbild von wessyjr
 
Registriert seit: Feb 2004
Ort: Manchmal vor und manchmal hinter dem Mond...
Beiträge: 43
Mal wieder Array.sort

Ich fühle mich von Flash doch etwas auf den Arm genommen. Ich möchte ein Array so sortieren, dass ich aufsteigende (ascending) Werte bekomme. Eingabe: 1,2,3,4,5
Ausgabe: 1,2,3,4,5

Flash scheint aber weder die von mir geschriebene Funktion richtig zu interpretieren noch die eigene (Array.sort(Array.NUMERIC,Array.DESCENDING) oder Array.sort(Array.NUMERIC)). Ich habe auch schon das Forum durchsucht, jedoch scheint keine Lösung zu funktionieren.

Könnt Ihr mir helfen?

PHP-Code:
ebenen=Array();
ebenen.push(1);
ebenen.push(2);
ebenen.push(3);
ebenen.push(4);
ebenen.push(5);
// ebenen.sort(Array.NUMERIC);
function sortieren(a,b)
{
    return 
b>a;
}
ebenen.sort(sortieren);
for (
key in ebenen)
{
    
trace(ebenen[key]);

wessyjr ist offline   Mit Zitat antworten
Alt 20-12-2005, 12:30   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Du gibst ein Array falsch aus … sortiert wird schon richtig, so musst du durch das Array gehen:
PHP-Code:
var i;

for (
0ebenen.lengthi++)
{
    
trace(ebenen[i]);

__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 20-12-2005, 12:40   #3 (permalink)
Whatever...
 
Benutzerbild von wessyjr
 
Registriert seit: Feb 2004
Ort: Manchmal vor und manchmal hinter dem Mond...
Beiträge: 43
Das bringt mir leider nicht allzu viel, da im Array zuweilen Werte gelöscht werden. Damit hätte ich dann einige undefined Values im Ergebnis...
wessyjr ist offline   Mit Zitat antworten
Alt 20-12-2005, 12:41   #4 (permalink)
Whatever...
 
Benutzerbild von wessyjr
 
Registriert seit: Feb 2004
Ort: Manchmal vor und manchmal hinter dem Mond...
Beiträge: 43
Hat jemand noch eine andere Idee?
wessyjr ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:11   #5 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
öhm... doch das geht! Du fragst ja vor jedem Schleifendurchlauf nochmal die Länge ab!?

PHP-Code:
for (0ebenen.lengthi++) //<-- per .length kriegst du ja bei jedem Aufruf der Schleife die aktuelle Länge! 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:16   #6 (permalink)
Whatever...
 
Benutzerbild von wessyjr
 
Registriert seit: Feb 2004
Ort: Manchmal vor und manchmal hinter dem Mond...
Beiträge: 43
nehmen wir an, ich würde das 2.te Element aus dem Array herauslöschen. Die Länge würde zwar mit Array.length neu bestimmt werden, der Schlüssel würde aber bei den Folgeelementen gleich bleiben. Also würde mir Flash beim 2.ten Element ein undefined ausgeben und das letzte Element nicht ausgeben. Richtig?
wessyjr ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:28   #7 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Naja... kommt darauf an, wie du löschst!

Falsch:
PHP-Code:
var test = new Array();
for(var 
011i++) {
    
test[i] = i;
}
trace("---");
trace(test);
trace("---");
for(var 
0test.lengthi++) {
    
trace(test[i]);
}
trace("---");
test[2] = "";
for(var 
0test.lengthi++) {
    
trace(test[i]);

Richtig:
PHP-Code:
var test = new Array();
for(var 
011i++) {
    
test[i] = i;
}
trace("---");
trace(test);
trace("---");
for(var 
0test.lengthi++) {
    
trace(test[i]);
}
trace("---");
test.splice(11);
for(var 
0test.lengthi++) {
    
trace(test[i]);

__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:32   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 118
Das ist halt der Nachteil an Arrays...

Gibt's in FLash keine Listen wie z. B. in Java?
Die kann man dynamisch ändern und trotzdem durchlaufen...
thkolz ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:36   #9 (permalink)
Whatever...
 
Benutzerbild von wessyjr
 
Registriert seit: Feb 2004
Ort: Manchmal vor und manchmal hinter dem Mond...
Beiträge: 43
@bamboocha:

du hattest natürlich vollkommen recht. Vielen Dank für die Hilfe!!
wessyjr 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 19:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele