Sie sind hier 459
Funktionen erster Klasse
JavaScript-Arrays stellen eine sort-Methode zur Verfügung. Wenn Sie ihr
eine Funktion übergeben können, die weiß, wie man zwei Elemente ver-
gleicht, sortiert sie das Array für Sie. Hier ein Überblick über die Funktions-
weise und wie Ihre Vergleichsfunktion da reinpasst: Sortieralgorithmen sind
sehr verbreitet und werden oft implementiert. Das Gute daran ist, dass die
Sortierfunktionen für fast alle Arten von Array-Elementen wiederverwendet
werden können. Einen Haken gibt es allerdings: Um eine bestimmte Art
von Elementen sortieren zu können, muss sort wissen, wie zwei Elemente
verglichen werden sollen, zum Beispiel Zahlen oder Namen oder bestimmte
Objekte. Die Art, wie wir vergleichen, hängt also davon ab, welchen Werte-
typ die Elemente haben: Für Zahlen verwenden wir <, > und ==, Strings
vergleichen wir alphabetisch (in JavaScript geht das auch mit <, > und ==),
und für Objekte brauchen wir spezielle Methoden, um sie beispielsweise
anhand ihrer Eigenschaften in die richtige Reihenfolge zu bringen.
Bevor wir uns mit dem Array von Webville Cola beschäftigen, wollen wir
uns erst ein schlichteres Beispiel ansehen. Wir benutzen ein einfaches Array
mit Zahlen und verwenden die sort-Methode, um sie in aufsteigender
Reihenfolge zu sortieren.
Wie die sort-Methode für Array funktioniert.
function compareNumbers(num1, num2) {
if (num1 > num2) {
return 1;
} else if (num1 === num2) {
return 0;
} else {
return -1;
}
}
Dieses Array besteht aus Zahlen, wir
werden also immer zwei Zahlen vergleichen.
Zuerst sehen wir, ob
num
1
größer als num2
ist. In diesem Fall geben
wir
1
zurück.
Wenn num1
aber kleiner ist als
num2, geben wir -
1
zurück.
var numbersArray = [60, 50, 62, 58, 54, 54];
Außerdem müssen wir eine Funktion schreiben, die weiß, wie die beiden Ar-
ray-Elemente zu vergleichen sind. Wir haben es mit einem Array aus Zahlen
zu tun, also muss unsere Funktion zwei Zahlen vergleichen können. In diesem
Beispiel wollen wir die Zahlen in aufsteigender Reihenfolge sortieren. Für die
sort-Methode heißt das: Ist die erste Zahl größer als die zweite, muss ein
Wert größer 0 zurückgegeben werden, sind beide gleich, ist der Rückgabewert
0, und wenn die erste Zahl kleiner als die zweite ist, muss der Rückgabewert
kleiner als 0 sein. Das geht zum Beispiel so:
Wenn beide gleich sind,
geben wir 0 zurück.
JavaScript-Arrays
besitzen viele nützliche
Methoden, die Sie auf verschie-
dene Weise für deren Bearbei-
tung verwenden können. Ein
großartiges Referenzbuch zu
allen diesen Methoden und ihre
Benutzung ist JavaScript: Das
umfassende Referenzwerk von
David Flanagan (O’Reilly).
Wie Sie wissen, muss die an
sort übergebene Vergleichs-
funktion eine Zahl zurückgeben,
die, abhängig von den zu sortie-
renden Dingen, größer als 0,
gleich 0 oder kleiner als 0 sein
muss. Ist das erste Element
größer als das zweite, geben
wir einen Wert größer als 0
zurück, ist das erste Element
gleich dem zweiten, geben wir
0 zurück, und wenn das erste
Element kleiner ist als das zwei-
te, muss der Rückgabewert
kleiner als 0 sein.
Können Sie diese Informationen
und die Tatsache, dass wir zwei
Zahlen vergleichen, benutzen,
um den Code in compareNum-
bers noch weiter zu verkürzen?
Überprüfen Sie Ihre Antwort am
Ende des Kapitels, bevor Sie
weiterlesen.
Ernst gemeinter Tipp
Spitzen Sie Ihren Bleistift

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.