Objekte nach einer bestimmten Regel sortieren

8

In Javascript muss ich Objekte in einem Array nach Typ sortieren. Jeder Typ hat eine höhere Priorität, also sollte ein Objekt vom Typ "wischen" die höchste Priorität haben, also vorne im Array (Index = 0).

Was wäre der beste Weg, um diese Objekte zu sortieren? Gibt es eine eingebaute Funktion, die das kann?

Für zB:

%Vor%     
Jake M 29.12.2011, 01:39
quelle

3 Antworten

3

JavaScript% array.sort Methode erwartet eine Vergleichsfunktion, übergeben Sie einfach diese Funktion:

%Vor%     
LeleDumbo 29.12.2011, 01:45
quelle
16

Dies könnte die Lösung sein, nach der Sie suchen:

%Vor%

Es funktioniert genau wie gewünscht. Sehen Sie diese Datei für einen Beweis.

Die Lösung verwendet die sort() -Methode der Array -Klasse und gibt einen Callback an sie weiter, der einen benutzerdefinierten Vergleich ermöglicht. In diesem Fall basiert der Vergleich auf der Position der Eigenschaft .type der verglichenen Elemente in order array.

    
Tadeck 29.12.2011 01:47
quelle
3

Es ist ziemlich einfach in JavaScript:

Zuerst legen Sie Ihre Objekte in ein Array, z. myArray .

Als nächstes schreiben Sie eine Funktion, die Objekte annimmt und einen Wert kleiner als 0 zurückgibt, wenn das erste Objekt vor dem zweiten Objekt im Array erscheinen sollte, 0, wenn die beiden Objekte für die Sortierung gleich sind, oder einen Wert größer als 0 wenn das zweite Objekt vor dem ersten Objekt im Array erscheinen soll. Zum Beispiel:

%Vor%

Rufen Sie schließlich myArray.sort(myOrderFunc) auf. Dadurch werden die Objekte in Ihrem Array sortiert. Wenn Sie ein detaillierteres Beispiel mit Ihren spezifischen Daten benötigen, fragen Sie einfach.

    
Paul 29.12.2011 01:54
quelle

Tags und Links