Ich versuche, 2 Zeichenfolgen zum Sortieren alphabetisch zu vergleichen. Zum Beispiel möchte ich eine boolesche Prüfung wie haben if('aaaa' < 'ab')
. Ich habe es versucht, aber es gibt mir nicht die richtigen Ergebnisse, also denke ich, dass das nicht die richtige Syntax ist. Wie mache ich das in jquery oder Javascript?
javascript
jquery
gleichalt
quelle
quelle
'aaaa' < 'ab'
kehrt zurücktrue
. <! - Falsche Bearbeitung, um die Abstimmung zu entfernen ->Antworten:
Schauen wir uns einige Testfälle an - versuchen Sie, die folgenden Ausdrücke in Ihrer JS-Konsole auszuführen:
Alle geben true zurück.
JavaScript vergleicht Zeichenfolgen Zeichen für Zeichen und "a" steht im Alphabet vor "b" - daher weniger als.
In Ihrem Fall funktioniert es so -
vergleicht die ersten beiden "a" -Zeichen - alle gleich, lassen Sie uns zum nächsten Zeichen übergehen.
vergleicht die zweiten Zeichen "a" mit "b" - whoop! "a" kommt vor "b". Gibt true zurück.
quelle
"a" < "b" === true
"a" < "B" === false
.Sie sagen, dass der Vergleich zu Sortierzwecken dient. Dann schlage ich stattdessen vor:
Es gibt
-1
da"a" < "b"
,1
oder auf0
andere Weise, wie Sie benötigen Array.prototype.sort ()Beachten Sie, dass die Sortierung vom Gebietsschema abhängt. ZB auf Deutsch,
ä
ist eine Variante vona
,"ä".localeCompare("b", "de-DE")
kehrt also zurück-1
. Auf Schwedischä
ist einer der letzten Buchstaben im Alphabet,"ä".localeCompare("b", "se-SE")
kehrt also zurück1
.Ohne den zweiten Parameter to
localeCompare
wird das Gebietsschema des Browsers verwendet. Was meiner Erfahrung nach nie das ist, was ich will, denn dann wird es anders sortiert als der Server, der ein festes Gebietsschema für alle Benutzer hat.quelle
"aa".localeCompare("ab")
== "aa" .localeCompare ("Ab") für jedes denkbare Gebietsschema) und sogar in alten Versionen von IE funktioniert. Sollte die akzeptierte Antwort sein!Denken Sie daran, dass bei einem Zeichenfolgenvergleich wie "x"> "X" zwischen Groß- und Kleinschreibung unterschieden wird
Sie können verwenden
.toLowerCase()
, um ohne Groß- und Kleinschreibung zu vergleichen.quelle
"a".localeCompare("b")
sollte eigentlich-1
daa
sortieren vorherb
http://www.w3schools.com/jsref/jsref_localecompare.asp
quelle
Nehmen wir an, wir haben eine Reihe von Objekten:
dann können wir unser Array wie folgt sortieren:
Hinweis: Achten Sie auf Großbuchstaben. Möglicherweise müssen Sie Ihre Zeichenfolge aufgrund Ihres Zwecks in Kleinbuchstaben umwandeln.
quelle