JavaScript-Array von Objekten alphabetisch sortieren
-
Array von Objekten alphabetisch mit der Bedingung
if
und der Funktionsort()
in JavaScript sortieren -
Array von Objekten alphabetisch sortieren mit den Funktionen
localeCompare()
undsort()
in JavaScript -
Array von Objekten alphabetisch mit den Funktionen
Collator()
undsort()
in JavaScript sortieren
In diesem Tutorial wird das alphabetische Sortieren eines Arrays von Objekten mit der Funktion sort()
in JavaScript erläutert.
Array von Objekten alphabetisch mit der Bedingung if
und der Funktion sort()
in JavaScript sortieren
Wenn wir ein Array von Strings oder Integern haben, können wir sie einfach mit der Funktion sort()
in JavaScript sortieren. Sortieren wir zum Beispiel ein Array von Strings alphabetisch mit der Funktion sort()
. Siehe den Code unten.
var a = ['banana', 'apple', 'orange'];
var m = a.sort();
console.log(m);
Ausgabe:
Array(3)
0: "apple"
1: "banana"
2: "orange"
length: 3
Wie Sie sehen, wird das Array alphabetisch sortiert und das Ergebnis in der Variablen m
gespeichert. Wenn wir ein Array von Objekten haben, müssen wir einige Bedingungen verwenden, bevor wir die Funktion sort()
verwenden, um das Array zu sortieren. Wenn wir beispielsweise ein Array von Objekten haben, das den Vor- und Nachnamen einiger Personen enthält, und wir das Array nach dem Nachnamen der Personen sortieren möchten. Wir müssen eine Funktion innerhalb der Funktion sort()
übergeben, die den Nachnamen jeder Person vergleicht, und wenn der Nachname der ersten Person kleiner als der Nachname der zweiten Person ist, gibt die Funktion a . zurück negativer Wert, und wenn er größer ist, gibt die Funktion einen positiven Wert zurück; und wenn beide gleich sind, gibt die Funktion null zurück. Siehe den Code unten.
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
if (x.LastName < y.LastName) {
return -1;
}
if (x.LastName > y.LastName) {
return 1;
}
return 0;
}
var s = a.sort(SortArray);
console.log(s);
Ausgabe:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Wie Sie sehen, ist das Array nach dem Nachnamen sortiert. Sie können auch die Anzahl der Objekte innerhalb des Arrays erhöhen. Sie können das Array auch nach dem Vornamen sortieren.
Array von Objekten alphabetisch sortieren mit den Funktionen localeCompare()
und sort()
in JavaScript
Anstelle der if
-Bedingung können Sie zum Vergleichen der Strings auch die Funktion localeCompare()
verwenden. Es bietet viele andere Vergleichsoptionen, die Sie innerhalb der Funktion einstellen können. Vergleichen wir zum Beispiel das obige Array von Objekten mit der Funktion localeCompare()
. Siehe den Code unten.
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return x.LastName.localeCompare(y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Ausgabe:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Die Ausgabe ist die gleiche wie bei der obigen Methode. Sie können die Funktion auch so einstellen, dass alle Satzzeichen und Sonderzeichen beim Vergleich ignoriert werden. Wenn wir beispielsweise vor dem Nachnamen einer Person Satzzeichen haben, sortiert die Funktion das Array nicht. In diesem Fall können wir die Funktion localeCompare()
verwenden und sie so einstellen, dass die Satzzeichen beim Vergleich ignoriert werden. Siehe den Code unten.
var a = [
{FirsName: 'Ellie', LastName: ',Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true});
}
var s = a.sort(SortArray);
console.log(s);
Ausgabe:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: ",Williams"}
length: 2
Das Array wird nach dem Nachnamen sortiert, auch wenn ein Satzzeichen vorhanden ist. Sie können auch Sonderzeichen ignorieren, wenn sie im String vorhanden sind, indem Sie die Empfindlichkeit der Funktion localeCompare()
auf base setzen, wie unten gezeigt.
x.LastName.localeCompare(y.LastName, 'en', {sensitivity: 'base'});
Unter diesem Link finden Sie weitere Details zur Funktion localeCompare()
.
Array von Objekten alphabetisch mit den Funktionen Collator()
und sort()
in JavaScript sortieren
Anstelle der if
-Bedingung können Sie zum Vergleichen der Strings auch die Funktion Collator()
verwenden. Vergleichen wir zum Beispiel das obige Array von Objekten mit der Funktion Collator()
. Siehe den Code unten.
const collator = new Intl.Collator('en');
var a = [
{FirsName: 'Ellie', LastName: 'Williams'},
{FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
return collator.compare(x.LastName, y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Ausgabe:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Die Ausgabe ist die gleiche wie bei den obigen Methoden. Sie können die Sortierreihenfolge auch auf absteigend ändern, indem Sie die Stelle der beiden Argumente in der Funktion collator.compare()
ändern. Sie können auch die Funktion Collator()
verwenden, um Strings einer anderen Sprache zu vergleichen; Sie müssen nur das Collator-Objekt mit dieser Sprache initialisieren. Im obigen Code haben wir zum Beispiel en
für die englische Sprache verwendet. Unter diesem Link finden Sie weitere Details zur Funktion Collator()
.
Verwandter Artikel - JavaScript Array
- Überprüfen Sie, ob das Array einen Wert in JavaScript enthält
- Array mit bestimmter Länge in JavaScript erstellen
- Konvertieren ein Array in einen String in JavaScript
- Erstes Element aus einem Array in JavaScript entfernen
- Objekte aus einem Array in JavaScript suchen
- Konvertieren von Argumenten in ein Array in JavaScript