Wie wenden Sie eine benutzerdefinierte Sortierung auf ein Array an?

8

Ich möchte ein Array auf eine benutzerdefinierte Weise sortieren. Beispiel wäre die Klassenstufe eines Schülers:

%Vor%

Idealerweise sollte die Sortierung zurückkehren:

%Vor%

Ich denke, dass ich die Klassenstufen im Voraus so einstufen könnte:

%Vor%

und wenden Sie dann eine Sortierung über:

an %Vor%

Aber dann muss ich die Ränge strippen, indem ich Folgendes mache:

%Vor%

Gibt es einen direkteren Weg, dies zu tun, ohne die Classlevels vorher zu klassifizieren und sie danach wieder zu entfernen?

    
Kevin 30.05.2013, 21:46
quelle

3 Antworten

31

Sie sollten in der Lage sein, so etwas zu tun:

%Vor%

Geige:

Ссылка

    
Jason 30.05.2013, 22:11
quelle
5

Zusätzlich zu Jasons Antwort:

%Vor%

Es hilft, das Array von Objekten zu sortieren

    
Roman Yudin 10.09.2013 15:03
quelle
4

Mach es super hackisch / schlecht !!! Tot einfach / wahnsinnig verwirrend:)

%Vor%

Bearbeiten:

Da die Leute diese Antwort nützlich zu finden scheinen, hier ist eine Erklärung, wie es funktioniert ... Sortiert basierend auf einem Buchstaben in dem bereitgestellten Wort. Da "Sophomore" und "Senior" einen doppelten Anfangsbuchstaben haben, habe ich gewählt, nach dem zweiten Buchstaben zu sortieren, jedes Wort hat einen eindeutigen Wert dafür.

Das würde sie dann so ordnen: Senior, Sophomore, Freshman, Junior. Um sie richtig zu sortieren, subtrahiere ich mit dem Zeichencode für Q (113), der direkt neben R steht (für Erstsemester). Das heißt, wie nahe der zweite Buchstabe jedes Wortes an Q ist, bestimmt die Reihenfolge. Um negative Zahlen zu vermeiden, nimmt die Funktion den absoluten Wert des Ergebnisses und gibt das zurück.

    
Pluto 30.05.2013 22:52
quelle

Tags und Links