Sortieren von Zeichenfolgen in JavaScript
Viele JavaScript-Entwickler stoßen aufgrund der Eindeutigkeit auf Herausforderungen, wenn sie versuchen, eine Liste von Objekten basierend auf einem Zeichenfolgenattribut zu sortieren Verhalten von Strings in JavaScript. In diesem Artikel werden die Lösungen für dieses häufige Problem untersucht.
Problem:
Wie Sie festgestellt haben, subtrahieren Sie einfach eine Zeichenfolge von einer anderen, wie in a.attr - b.attr , sortiert Zeichenfolgen in JavaScript nicht genau. Dies liegt daran, dass JavaScript Zeichenfolgen als Unicode-Zeichen behandelt und grundlegende arithmetische Operationen nicht für den Vergleich geeignet sind.
Lösung:
Um Zeichenfolgen effektiv zu sortieren, können Sie die verwenden String.prototype.localeCompare-Methode. Diese Methode ermöglicht einen länderspezifischen Vergleich von Zeichenfolgen und eignet sich daher besser zum Sortieren. Hier ist eine aktualisierte Version Ihres Codes mit localeCompare:
list.sort(function(a, b) { return ('' + a.attr).localeCompare(b.attr); });
Beachten Sie, dass wir eine leere Zeichenfolgenverkettung ('' a.attr) hinzugefügt haben, um sicherzustellen, dass beide Werte in Zeichenfolgen umgewandelt werden. Dies dient dazu, potenzielle Ausnahmen zu vermeiden.
Alternativen:
Wenn Sie einen prägnanteren Ansatz bevorzugen und die Lokalisierungssensitivität nicht berücksichtigen müssen, können Sie Folgendes verwenden Codeausschnitt:
if (item1.attr < item2.attr) return -1; if ( item1.attr > item2.attr) return 1; return 0;
Das obige ist der detaillierte Inhalt vonWie sortiere ich Strings in JavaScript richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!