Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-07-2004, 20:17   #1 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Array alphabetisch sortieren

Hallo Flasher,

irgendwie steh ich grad auf der Leitung und weiß nicht, wie ich einen Array mit verschiedenen Strings alphabetisch sortieren kann!?
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 26-07-2004, 20:22   #2 (permalink)
Halbwissender
 
Benutzerbild von r2-d2
 
Registriert seit: Jul 2002
Ort: Leipzig
Beiträge: 184
steht in der Hilfe.

Array.sort()
Verfügbarkeit
Flash Player 5; zusätzliche Möglichkeiten in Flash Player 7.

Verwendung
mein_array.sort()
mein_array.sort(vergleichsfunktion)
mein_array.sort(option | option |... )
mein_array.sort(vergleichsfunktion, option | option |... )

Parameter
vergleichsfunktion Eine optionale Vergleichsfunktion, mit der die Sortierreihenfolge der Elemente im Array festgelegt wird. Bei Verwendung der Elemente A und B kann das Ergebnis von vergleichsfunktion einen der folgenden drei Werte aufweisen:

-1, falls A in der sortierten Folge vor B aufgeführt werden soll
0, wenn A = B
1, falls A in der sortierten Folge hinter B aufgeführt werden soll
option Ein oder mehrere durch den Operator | (bitweises OR) voneinander getrennte Strings, die das Verhalten der Sortierung gegenüber dem Standardverhalten ändern. Folgende Werte werden für option akzeptiert:

1 oder Array.CASEINSENSITIVE
2 oder Array.DESCENDING
4 oder Array.UNIQUE
8 oder Array.RETURNINDEXEDARRAY
16 oder Array.NUMERIC
Informationen zu diesem Parameter finden Sie unter Array.sortOn().

Rückgaben
Der Rückgabewert hängt davon ab, ob Sie Parameter übergeben:

Wenn Sie den Wert 4 oder Array.UNIQUE für option angeben und zwei oder mehr zu sortierende Elemente identische Sortierungsfelder aufweisen, gibt Flash den Wert 0 zurück und ändert das Array nicht.
Wenn Sie den Wert 8 oder Array.RETURNINDEXEDARRAY für option angeben, gibt Flash ein Array zurück, das die Ergebnisse der Sortierung wiedergibt, und ändert das Array nicht.
Andernfalls gibt Flash nichts zurück und ändert das Array entsprechend der Sortierreihenfolge.
Beschreibung
Methode; sortiert die Elemente in einem Array. Flash sortiert nach ASCII- (Unicode-)Werten Wenn eines der zu vergleichenden Elemente das im Parameter feldname angegebene Feld nicht enthält, gilt das Feld als undefined, und die Elemente werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.

Standardmäßig funktioniert Array.sort() wie folgt:

Bei der Sortierung wird Groß-/Kleinschreibung beachtet (Z kommt vor a).
Die Sortierung erfolgt aufsteigend (a kommt vor b).
Das Array wird entsprechend der Sortierreihenfolge geändert. Elemente mit identischen Sortierfeldern werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.
Numerische Felder werden so sortiert, als seien sie Strings. 100 kommt demnach vor 99, weil "1" ein kleinerer Stringwert ist als "9".
Es wird nichts zurückgegeben.
Wenn Sie die Sortierung anders durchführen möchten, erstellen Sie eine Funktion für die Sortierreihenfolge und übergeben deren Namen als Parameter vergleichsfunktion. Dies ist beispielsweise hilfreich, wenn Sie alphabetisch nach Nachname und danach absteigend nach Postleitzahl sortieren möchten.

Wenn Sie ein oder mehrere Felder angeben möchten, nach denen mit der Standardsortierung oder dem Parameter options sortiert werden soll, verwenden Sie Array.sortOn().

Beispiel
Verwendung 1: Das folgende Beispiel veranschaulicht die Verwendung von Array.sort() mit und ohne Übergabe eines Wertes für option:

var obst_array = ["Orangen", "Äpfel", "Erdbeeren", "Ananas", "Kirschen"];
trace(obst_array.join());
obst_array.sort();
trace(obst_array.join());
fruechte_array.sort(Array.DESCENDING);
trace(obst_array.join());

Im Bedienfeld Ausgabe werden die folgenden Ergebnisse angezeigt:

Orangen, Äpfel, Erdbeeren, Ananas, Kirschen // ursprüngliches Array
Äpfel, Ananas, Erdbeeren, Kirschen, Orangen // Standardsortierung
Orangen, Kirschen, Erdbeeren, Ananas, Äpfel // absteigende Sortierung

Verwendung 2: Im folgenden Beispiel wird Array.sort() mit einer Vergleichsfunktion verwendet

var passwords = ["mom:glam","ana:ring","jay:mag","anne:home","regin a:silly"];
function order (a,b){
// Zu sortierende Einträge im Format nameassword
// Als Sortierschlüssel dient nur der Namensteil des Eintrags
var name1 =a.split(":")[0 ];
var name2 =b.split(":")[0 ];
if (name1 < name2){
return -1;
}
else if (name1 >name2){
return 1;
}
else {
return 0;
}
}
trace ("Unsortiert:");
trace (passwords.join());

passwords.sort(order);
trace ("Sortiert:");
trace (passwords.join());

Im Bedienfeld Ausgabe werden die folgenden Ergebnisse angezeigt:

Unsortiert
mom:glam,ana:ring,jay:mag,anne:home,regina:silly
Sortiert:
ana:ring,anne:home,jay:mag,mom:glam,regina:silly
__________________
:) Möge die Macht mit Dir sein.

XING/openBC
r2-d2 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 10:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele