Sortieren in JavaScript | Erklärt

Sortieren in JavaScript | Erklärt
JavaScript verfügt über eine Vielzahl von Methoden und Funktionen, um bestimmte Aufgaben zu erledigen. Diese Methoden helfen beim Sortieren eines Arrays. Sortieren bedeutet, eine Reihe von Werten in einer bestimmten Reihenfolge zu ordnen. Es kann entweder aufsteigend oder absteigend sein. Da Arrays ein wesentlicher Bestandteil der Programmierung sind, ist das Sortieren eine wichtige und entscheidende Aufgabe. Es gibt viele triviale Algorithmen, um Arrays zu sortieren.

Wir werden ein Array mit Stringwerten und numerischen Werten mit integrierten JavaScript -Funktionen sortieren.

.Sort () Methode

Der .Sortieren() Methode wird verwendet, um ein Array zu sortieren. Die Reihenfolge des sortierten Arrays steigt alphabetisch auf. Es funktioniert am besten für Zeichenfolgewerte, führt jedoch zu falschen Ergebnissen, wenn es um numerische Werte geht. Jetzt kommt die Frage, warum die .Sort () Methode funktioniert nicht für numerische Werte.

Zu wissen, warum die .Sort () Methode funktioniert für die Zeichenfolgen, aber nicht für die numerischen Werte, wir müssen zunächst verstehen, wie die .Sort () Methode funktioniert.

Wie macht das .Sort () Methodenarbeit

Der .Sortieren() Die Methode funktioniert, indem das erste Zeichen der Zeichenfolge mit dem ersten Zeichen aus dem nächsten Wert verglichen wird. Wenn die Zeichen gleich sind, überprüft sie die zweite von den Saiten und platziert die kleinere zuerst. Kleiner wird auf der Grundlage der alphabetischen Reihenfolge entschieden, wie im obigen Beispiel “C" ist kleiner als "F”.

Also, wenn wir das bestehen “.Sortieren()"Methode Zwei numerische Werte wie" 200 "und" 65 ". Diese Funktion vergleicht die ersten Zeichen („2“ von „200“ und „6“ von „65“) und gibt „65“ als größere Zahl zurück. In diesem Tutorial werden wir jedoch auch ein Beispiel durchgehen, in dem wir Zahlen mithilfe von Sortieren sortieren werden .Sortieren() Methode. Beginnen wir damit, die Syntax der Syntax zu diskutieren und zu verstehen .Sortieren() Methode.

Syntax

Die Syntax der .Sort () -Methode ist ziemlich einfach. Es ist:

Array.Sortieren()

Rückgabewert: Ein sortiertes Array.

Nehmen wir zum Beispiel ein Array mit verschiedenen Elementen darin:

Array = ["Tisch", "Stuhl", "Glas", "Maus", "Laptop", "Fan", "Car"];

Um dies zu sortieren und die Ausgabe anzuzeigen, werden wir die verwenden .Sort () Methode in der Konsole.log () Methode wie SO:

Konsole.Protokoll (Array.Sortieren());

Der komplette Code -Snippet würde:

Array = ["Tisch", "Stuhl", "Glas", "Maus", "Laptop", "Fan", "Car"];
Konsole.Protokoll (Array.Sortieren());

Führen Sie das Programm aus, um die Ausgabe zu beobachten:

.Reverse () Funktion

Der .Reverse () -Funktion sortiert ein Array nicht in beliebiger Reihenfolge. Es kehrt jedoch die Positionierung von Elementen im Array um. Das bedeutet, dass das letzte Element eines Arrays das erste Element wird. Die Syntax ist wie:

Array.umkehren()

Wenn wir das Array aus dem obigen Beispiel nehmen und versuchen, es mit dem umzukehren .Reverse () Methode, dann wäre das Code -Snippet so etwas.

Array = ["Tisch", "Stuhl", "Glas", "Maus", "Laptop", "Fan", "Car"];
Konsole.Protokoll (Array.umkehren());

Die Ausgabe ist als:

Wie Sie sehen können, sind die Elemente eines Arrays jetzt in umgekehrter Reihenfolge. Aber wie sortieren wir tatsächlich ein Array in absteigender Reihenfolge??

So sortieren Sie Array -Werte in absteigender Reihenfolge?

Nun, wir müssen eine Kombination der verwenden .Sortieren() und das .umkehren() Methode. Wir sortieren zuerst ein Array und dann verwenden wir die .umkehren() Methode, um das Array in absteigender Reihenfolge zu sortieren.

Das klingt ein wenig verwirrend, also versuchen wir, ein Beispiel zu beobachten. Nehmen Sie für dieses Beispiel das Array aus den oben genannten Beispielen.

Array = ["Tisch", "Stuhl", "Glas", "Maus", "Laptop", "Fan", "Car"];

Jetzt, da wir ein Array in völlig zufälliger Reihenfolge haben. Der erste Schritt besteht darin, es zu sortieren, also lass uns das tun: Verwenden

Array.Sortieren()

Nachdem das Array sortiert ist, müssen wir es mit der folgenden Zeile umkehren:

Array.umkehren();

Der letzte Schritt besteht darin, die Ausgabe zu beobachten, und um dies zu tun, werden wir das Array verwenden Konsole.Protokoll() Methode wie diese:

Konsole.log (Array);

Der komplette Code -Snippet ist als

Array = ["Tisch", "Stuhl", "Glas", "Maus", "Laptop", "Fan", "Car"];
Array.Sortieren();
Array.umkehren();
Konsole.log (Array);

Die Ausgabe ist als:

Das ist es, das ist unser Array in absteigender alphabetischer Reihenfolge sortiert. Lassen Sie uns nun sehen, wie man mit numerischen Werten arbeitet.

So sortieren Sie numerische Werte mithilfe .Sort () Methode

Wie wir bereits erwähnt haben, die .Sortieren() Die Methode erzeugt keine korrekten Ergebnisse, wenn es darum geht, numerische Werte zu sortieren, und das liegt daran, dass die .Sortieren() Die Methode funktioniert, indem sie Zeichenfolgen vergleichen, numerische Werte als Zeichenfolgen betrachtet und sie dann vergleicht.

Beginnen wir damit, eine Reihe numerischer Werte zu erstellen. Wie so.

NumberArray = [2,3,4,6,66,100,25,33]

Lassen Sie uns nun die Ausgabe beobachten, indem wir das ausführen. Sortieren() Methode auf diesem Array im Inneren der Konsole.Protokoll() Funktion

Konsole.log (numberArray.Sortieren());

Die Ausgabe ist als:

Wie Sie sehen können, ist das Ergebnis aus der Marke. Warum ist das so?. Nun, wir haben bereits erklärt, wie die .Sort () Methode funktioniert. Was passiert ist, dass es den ersten Charakter der Zeichenfolge nimmt und es mit den ersten Zeichen des nächsten Wertes vergleicht, obwohl 100 größer als 33 sind. Wenn Sie jedoch die ersten Zeichen vergleichen, ist „1“ kleiner als „3“, daher wird 100 vor 33 platziert.

Beheben wir dieses Problem also? Nun, wir tun dies, indem wir eine Vergleichsfunktion in der Sortierfunktion verwenden. Die Vergleichsfunktion lautet wie:

Funktion (a, b)

Return a-b

Wir nehmen das "NumberArray”Aus dem obigen Beispiel und anwenden Sie diese Vergleichenfunktion darauf, um die Ausgabe zu beobachten.

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sortieren (Funktion (a, b)
Rückkehr a - b;
);
Konsole.log (numberArray);

Damit erhalten wir die folgende Ausgabe.

Wie Sie sehen können, haben wir endlich unser Nummern -Array in absteigender Reihenfolge sortiert.

So sortieren Sie numerische Werte in absteigender Reihenfolge?

Nachdem wir mit der Sortierung eines numerischen Arrays in aufsteigender Reihenfolge vertraut sind, können wir versuchen, es in absteigender Reihenfolge zu sortieren. Genau wie der Versuch, Strings in absteigender Reihenfolge zu sortieren, können wir die Reverse () -Methode verwenden, um das numerisch -sortierte Array wie SO umzukehren:

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (function (x, y)
Rückkehr x - y;
);
NumberArray.umkehren();
Konsole.log (numberArray);

Die Ausgabe ist als:

Es gibt jedoch eine andere Möglichkeit, dies zu tun, und das ist, die Rückgabeanweisung in der Vergleichsfunktion zu ändern. Ändern Sie die Aussage dazu:

Rückkehr B-A;

Danach drucken wir das Array einfach mit dem Array aus Konsole.Protokoll() Methode. Der komplette Code -Snippet lautet wie:

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (function (x, y)
return y - x;
);
Konsole.log (numberArray);

Die Ausgabe wird sein:

So sortieren Sie Objektarrays in JavaScript

Stellen Sie sich vor.

Jetzt wollen wir dieses Array nach dem Jahr, in dem sie geboren wurden, sortieren. Wir haben das Objektarray des Volkes als:

const people = [
Name: "Albert", YOB: 1997,
Name: "Dave", YOB: 2005,
Name: "John", YOB: 2000
];

Jetzt können wir dieses Objekt -Array mithilfe mit .sort () und vergleichen Sie die Funktion als:

Menschen.sort (function (x, y)
Rückkehr x.YOB - x.Yob;
);

Das Letzte ist jetzt, dieses Array mit dem folgenden Code anzuzeigen:

Konsole.log ("Die Menschen in altersbestellen sind als");
für (lass i = 0; i <= people.length; i++)
Konsole.Protokoll (Leute [i].Name + "wird in" + Menschen geboren [i].Yob);

Der komplette Code -Snippet lautet wie:

const people = [
Name: "Albert", YOB: 1997,
Name: "Dave", YOB: 2005,
Name: "John", YOB: 2000,
];
Menschen.sort (function (x, y)
Rückkehr x.yob - y.Yob;
);
Konsole.log ("Die Menschen in altersbestellen sind als");
für (lass i = 0; i <= people.length; i++)
Konsole.Protokoll (Leute [i].Name + "wird in" + Menschen geboren [i].Yob);

Wenn wir die Datei ausführen, erhalten wir die folgende Ausgabe:

Wie wir sehen können, werden jetzt alle Objekte auf der Grundlage ihres „YOB“ sortiert, das das Jahr der Geburt der Person ist.
Das ist es, um JavaScript zu sortieren.

Abschluss

Sortieren ist ein wesentlicher Bestandteil bei der Arbeit mit Arrays. JavaScript verfügt über verschiedene eingebaute Funktionen, die uns helfen, Array -Elemente zu sortieren. Wir haben gelernt, wie die .Sortieren() Die Methode funktioniert in JavaScript, seiner Syntax und ihrem Rückgabewert. Darüber hinaus haben wir gelernt, wie man die Kombination von verwendet .Sortieren() Und .umkehren() Methode zur Sortierung von Arrays in absteigender Reihenfolge. Zuletzt haben wir gelernt, wie wir das verwenden können .Sortieren() Methode zum Sortieren numerischer Werte mithilfe der Funktion "Vergleichen".