JavaScript-Array von Objekten alphabetisch sortieren

Ammar Ali 12 Oktober 2023
  1. Array von Objekten alphabetisch mit der Bedingung if und der Funktion sort() in JavaScript sortieren
  2. Array von Objekten alphabetisch sortieren mit den Funktionen localeCompare() und sort() in JavaScript
  3. Array von Objekten alphabetisch mit den Funktionen Collator() und sort() in JavaScript sortieren
JavaScript-Array von Objekten alphabetisch 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().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - JavaScript Array